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

