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/

