High Recv-Q on multithread mode, but all OK in multiprocess mode

Hello,

We are using HaProxy 1.8.20 version on Centos 7 with 4 core. We have very high load site (traffic around 250 Mbs per second, in peaks 300 Mbit per second).

We are using acl-rules in config and etc. But the problem is:

  1. We had very high CPU Utilization for haproxy process. And we decided to activate multithread mode (nbthread 4) and this is helped to improve situation
  2. But sometimes in high load haproxy did not have time to process network packages and we received high recv queue in netstat (see screen: https://i.imgur.com/iy9JpjE.jpg)
  3. We activated multiprocess mode (nbproc=2 and nbthread=2) and our queue reset to zero and now all OK…

My question is: which the difference between multiprocess and multithread mode from performance point of view? Why in our case multiprocess better than multithread?

Thank you.