Hi Kyle,

On Tue, Nov 20, 2012 at 01:24:57PM -0500, Kyle Brandt wrote:
> I had read that there are issues with health checks and stats when using
> nbproc, but I'm having trouble finding any details.
> 
> 1. What are the issues to watch out for?

when you have multiple processes listening on the same ip:port, any of
them will accept requests. So when connecting to the stats, you'll be
randomly accepted by any of the processes which will show you its own
stats. Concerning the health checks, having multiple processes run the
same backend will result in this backend's checks being emitted in
parallel by all the processes. While it might not be an issue at 2
processes, it certainly can at higher values. Also, having parallel
and unsynchronized checks will result in erratic user placement during
server state changes because not all processes will see the same state
at the same time, but this generally is a bit a minor issue, it's just
like a short flapping.

> 2. Do these issues still exist with ssl if the HTTP part of the processing
> is only bound to what process? For example:

No you don't have these issues there, because everything runs on a single
process except your ssl offloader processes.

For your information, I have slightly improved the multi-process behaviour
for setups such as yours. Now you can start with nbproc > 1, haproxy will
automatically only keep the processes which have at least one front or
back bound to them, and the other ones will leave. This combined with a
"bind-process 1" value in the defaults section and with a "stats
bind-process 1" statement in the global config results in making it much
easier to adjust process counts. Also there is a new global "cpu-map"
directive to map processes to CPU cores. This will help having full
power and low latency for the L7 processing and use other busy CPUs
for SSL offloading.

Regards,
Willy


Reply via email to