Chris,

At loadbalancer.org we did some fairly heavy load testing of haproxy
on various bits of hardware and get excellent results with a
combination of using irqbalance + iptables NOTRACK.
We tend to keep nbproc=1 unless that CPU is totally overloaded.

Its not the most optimal solution but it is reliable/stable and easy
to configure.












On 24 November 2014 at 16:46, Chris Allen <[email protected]> wrote:
> We have a load balancer running haproxy 1.5.8. At times of heavy load we're
> getting dangerously close
> to running out of CPU. I'd be really grateful for some definitive opinions
> on the relative merits
> of the two possible solutions detailed below - as I'm having trouble finding
> detailed and consistent
> information on them.
>
>
> 1. Nbproc
>
> Our server has 8 cores. We have two primary frontends. We could run Nbproc=8
> assigning
> cores 1,2,3,4 to the first frontend and 5,6,7,8 to the other one. But
> several documents
> say that running Nbproc is not such a great idea (we totally understand the
> issue with
> stats and don't do admin socket updates or any of the "dangerous stuff"). If
> we're ok
> with that, is Nbproc a reasonable choice?
>
> Related to nbproc:
>
> - If we do run with nbproc, should we be pinning network interrupts or just
> letting irqbalance
> handle them? The loadbalancer has 3 bonded NICS generating 15 IRQs - but no
> particular NIC
> is related to any particular frontend.
>
> - If I bind a frontend to multiple processes, only one of those processes
> listens on the TCP
> port that I have specified. Yet the other processes seem to receive requests
> too. How does
> that work? And is the primary process any more loaded for doing the
> listening?
>
>
>
> 2. Distributing interrupts
>
> One of our techops team found an old haproxy.com blog that suggested a good
> solution for
> balancing cpu load was simply by distributing network interrupts across
> available cores
> but leaving haproxy to run as a single process. We have tried this and
> indeed the *average*
> cpu load appears shared across all proceses - but logic tells me that
> haproxy must still be
> loading each cpu on which it runs and will saturate them (even though the
> overall average
> looks good). Can anybody comment on this approach as our team member is
> convinced
> he has a "silver bullet" for performance.
>
>
> Many thanks for any help/insight into this!
>
>
>
>
>



-- 
Regards,

Malcolm Turnbull.

Loadbalancer.org Ltd.
Phone: +44 (0)330 1604540
http://www.loadbalancer.org/

Reply via email to