loadbalancer: support setting nbthread with variable haproxy_threads
Threads are the recommended way to scale CPU performance since HAProxy 1.8. Official documentation says: « While "nbproc" historically used to be the only way to use multiple processors, it also involved a number of shortcomings related to the lack of synchronization between processes (health-checks, peers, stick-tables, stats, ...) which do not affect threads. As such, any modern configuration is strongly encouraged to migrate away from "nbproc" to "nbthread". ». While more recent versions of HAProxy automatically detect the number of available CPU and enable threads for them, it can be useful to explicitely set the value. In this patch, setting cpu-map for threads is not supported. Change-Id: Id917c70f3dbe52f24f25d9403ba8151729e8966b
This commit is contained in:
parent
e0b212d72d
commit
e043828601
@ -51,6 +51,8 @@ keepalived_traffic_mode: "multicast"
|
|||||||
|
|
||||||
# Extended global configuration, optimization options.
|
# Extended global configuration, optimization options.
|
||||||
haproxy_max_connections: 40000
|
haproxy_max_connections: 40000
|
||||||
|
haproxy_threads: 1
|
||||||
|
# More than 1 process is deprecated by HAProxy, prefer haproxy_threads
|
||||||
haproxy_processes: 1
|
haproxy_processes: 1
|
||||||
haproxy_process_cpu_map: "no"
|
haproxy_process_cpu_map: "no"
|
||||||
# Matches the mariadb 10000 max connections limit
|
# Matches the mariadb 10000 max connections limit
|
||||||
|
@ -7,6 +7,7 @@ global
|
|||||||
log {{ syslog_server }}:{{ syslog_udp_port }} {{ syslog_haproxy_facility }}
|
log {{ syslog_server }}:{{ syslog_udp_port }} {{ syslog_haproxy_facility }}
|
||||||
maxconn {{ haproxy_max_connections }}
|
maxconn {{ haproxy_max_connections }}
|
||||||
nbproc {{ haproxy_processes }}
|
nbproc {{ haproxy_processes }}
|
||||||
|
nbthread {{ haproxy_threads }}
|
||||||
{% if (haproxy_processes | int > 1) and (haproxy_process_cpu_map | bool) %}
|
{% if (haproxy_processes | int > 1) and (haproxy_process_cpu_map | bool) %}
|
||||||
{% for cpu_idx in range(0, haproxy_processes) %}
|
{% for cpu_idx in range(0, haproxy_processes) %}
|
||||||
cpu-map {{ cpu_idx + 1 }} {{ cpu_idx }}
|
cpu-map {{ cpu_idx + 1 }} {{ cpu_idx }}
|
||||||
|
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
HAProxy supports setting nbthread via variable haproxy_threads.
|
||||||
|
Threads are recommended instead of processes since HAProxy 1.8.
|
||||||
|
They cannot be used both at the same time.
|
Loading…
Reference in New Issue
Block a user