mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-07 15:47:01 +02:00
MINOR: config: disable busy polling on old processes
in the context of seamless reload and busy polling, older processes will create unecessary cpu conflicts; we can assume there is no need for busy polling for old processes which are waiting to be terminated. This patch is not a bug fix itself but might be a good stability improvment when you are un the context of frequent seamless reloads with a high "hard-stop-after" value; for that reasons I think this patch should be backported in all 2.x versions. Signed-off-by: William Dauchy <w.dauchy@criteo.com>
This commit is contained in:
parent
125ad1f343
commit
3894d97fb8
@ -1476,6 +1476,10 @@ busy-polling
|
|||||||
prefixing it with the "no" keyword. It is ignored by the "select" and
|
prefixing it with the "no" keyword. It is ignored by the "select" and
|
||||||
"poll" pollers.
|
"poll" pollers.
|
||||||
|
|
||||||
|
This option is automatically disabled on old processes in the context of
|
||||||
|
seamless reload; it avoids too much cpu conflicts when multiple processes
|
||||||
|
stay around for some time waiting for the end of their current connections.
|
||||||
|
|
||||||
max-spread-checks <delay in milliseconds>
|
max-spread-checks <delay in milliseconds>
|
||||||
By default, haproxy tries to spread the start of health checks across the
|
By default, haproxy tries to spread the start of health checks across the
|
||||||
smallest health check interval of all the servers in a farm. The principle is
|
smallest health check interval of all the servers in a farm. The principle is
|
||||||
|
@ -1116,6 +1116,8 @@ void soft_stop(void)
|
|||||||
struct task *task;
|
struct task *task;
|
||||||
|
|
||||||
stopping = 1;
|
stopping = 1;
|
||||||
|
/* disable busy polling to avoid cpu eating for the new process */
|
||||||
|
global.tune.options &= ~GTUNE_BUSY_POLLING;
|
||||||
if (tick_isset(global.hard_stop_after)) {
|
if (tick_isset(global.hard_stop_after)) {
|
||||||
task = task_new(MAX_THREADS_MASK);
|
task = task_new(MAX_THREADS_MASK);
|
||||||
if (task) {
|
if (task) {
|
||||||
|
Loading…
Reference in New Issue
Block a user