Skip to content

Commit ff9245a

Browse files
author
HAProxy Community
committed
Update docs for dev
1 parent 94936a0 commit ff9245a

File tree

3 files changed

+119
-16
lines changed

3 files changed

+119
-16
lines changed

docs/dev/configuration.html

Lines changed: 108 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<html lang="en">
33
<head>
44
<meta charset="utf-8" />
5-
<title>HAProxy version 3.2-dev7-23 - Configuration Manual</title>
5+
<title>HAProxy version 3.2-dev7-83 - Configuration Manual</title>
66
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
77
<link href="https://raw.githubusercontent.com/thomaspark/bootswatch/v3.3.7/cerulean/bootstrap.min.css" rel="stylesheet" />
88
<link href="../css/page.css?0.4.2-15" rel="stylesheet" />
@@ -1630,6 +1630,10 @@
16301630

16311631
<a class="list-group-item" href="#cpu-map">cpu-map</a>
16321632

1633+
<a class="list-group-item" href="#cpu-policy">cpu-policy</a>
1634+
1635+
<a class="list-group-item" href="#cpu-set">cpu-set</a>
1636+
16331637
<a class="list-group-item" href="#cpu_calls">cpu_calls</a>
16341638

16351639
<a class="list-group-item" href="#cpu_ns_avg">cpu_ns_avg</a>
@@ -4470,7 +4474,7 @@
44704474
You can use <strong>left</strong> and <strong>right</strong> arrow keys to navigate between chapters.<br>
44714475
</p>
44724476
<p class="text-right">
4473-
<small>Converted with <a href="https://github.com/cbonte/haproxy-dconv">haproxy-dconv</a> v<b>0.4.2-15</b> on <b>2025/03/13</b></small>
4477+
<small>Converted with <a href="https://github.com/cbonte/haproxy-dconv">haproxy-dconv</a> v<b>0.4.2-15</b> on <b>2025/03/14</b></small>
44744478
</p>
44754479
</div>
44764480
<!-- /.sidebar -->
@@ -4481,7 +4485,7 @@
44814485
<div class="text-center">
44824486
<h1><a href="http://www.haproxy.org/" title="HAProxy"><img src="../img/HAProxyCommunityEdition_60px.png?0.4.2-15" /></a></h1>
44834487
<h2>Configuration Manual</h2>
4484-
<p><strong>version 3.2-dev7-23</strong></p>
4488+
<p><strong>version 3.2-dev7-83</strong></p>
44854489
<p>
44864490
2025/03/07<br>
44874491

@@ -7086,6 +7090,8 @@ <h2 id="chapter-2.9" data-target="2.9"><small><a class="small" href="#2.9">2.9.<
70867090
- <a href="#chroot">chroot</a>
70877091
- <a href="#cluster-secret">cluster-secret</a>
70887092
- <a href="#cpu-map">cpu-map</a>
7093+
- <a href="#cpu-policy">cpu-policy</a>
7094+
- <a href="#cpu-set">cpu-set</a>
70897095
- <a href="#crt-base">crt-base</a>
70907096
- <a href="#daemon">daemon</a>
70917097
- <a href="#default-path">default-path</a>
@@ -7480,7 +7486,99 @@ <h2 id="chapter-3.1" data-target="3.1"><small><a class="small" href="#3.1">3.1.<
74807486
cpu-map 3/1-40 40-79,120-159 <span class="comment"># node1, siblings 0 &amp; 1</span>
74817487
cpu-map 4/1-40 40-79,120-159
74827488
</code></pre>
7483-
</div><a class="anchor" name="crt-base"></a><a class="anchor" name="3-crt-base"></a><a class="anchor" name="3.1-crt-base"></a><a class="anchor" name="crt-base (Global parameters)"></a><a class="anchor" name="crt-base (Process management and security)"></a><div class="keyword"><b><a class="anchor" name="crt-base"></a><a href="#3.1-crt-base">crt-base</a></b> <span style="color: #080">&lt;dir&gt;</span></div><pre class="text">Assigns a default directory to fetch SSL certificates from when a relative
7489+
</div><a class="anchor" name="cpu-policy"></a><a class="anchor" name="3-cpu-policy"></a><a class="anchor" name="3.1-cpu-policy"></a><a class="anchor" name="cpu-policy (Global parameters)"></a><a class="anchor" name="cpu-policy (Process management and security)"></a><div class="keyword"><b><a class="anchor" name="cpu-policy"></a><a href="#3.1-cpu-policy">cpu-policy</a></b> <span style="color: #080">&lt;policy&gt;</span></div><pre class="text">Selects the CPU allocation policy to be used.
7490+
7491+
On multi-CPU systems, there can be plenty of reasons for not using all
7492+
available CPU cores, and/or for grouping them into different thread groups,
7493+
for performance, latency, cost, or system-wide resource management. The
7494+
&quot;<a href="#cpu-set">cpu-set</a>&quot; directive already allows to evict a number of them, but once done,
7495+
it is necessary to decide how to assign the remaining ones to threads and
7496+
thread groups.
7497+
7498+
This mapping is normally performed using the &quot;<a href="#cpu-map">cpu-map</a>&quot; directive, though it
7499+
can be particularly difficult to maintain on heterogenous systems.
7500+
7501+
The &quot;<a href="#cpu-policy">cpu-policy</a>&quot; directive chooses between a small number of allocation
7502+
policies which one to use instead, when &quot;<a href="#cpu-map">cpu-map</a>&quot; is not used. The following
7503+
policies are currently supported:
7504+
7505+
- none no particular post-selection is performed. All enabled
7506+
CPUs will be usable, and if the number of threads is
7507+
not set, it will be set to the number of available CPUs
7508+
but no more than 32 for 32-bit systems or 64 for 64-bit
7509+
systems, per thread-group. The number of thread-groups,
7510+
if not set, will be set to 1.
7511+
7512+
- efficiency exactly like group-by-cluster below, except that CPU
7513+
clusters whose performance is more than twice that of
7514+
the next less performant one are evicted. These are
7515+
typically &quot;big&quot; or &quot;performance&quot; cores. This means that
7516+
if more than one type of CPU cores are detected, only
7517+
the efficient one will be used. This can make sense for
7518+
use with moderate loads when the most powerful cores
7519+
need to be available to the application or a security
7520+
component. Some modern CPUs have a large number of such
7521+
efficient CPU cores which can collectively deliver a
7522+
decent level of performance while using less power.
7523+
7524+
- first-usable-node if the CPUs were not previously restricted at boot (for
7525+
example using the &quot;taskset&quot; utility), and if the
7526+
&quot;<a href="#nbthread">nbthread</a>&quot; directive was not set, then the first NUMA
7527+
node with enabled CPUs will be used, and this number of
7528+
CPUs will be used as the number of threads. A single
7529+
thread group will be enabled with all of them, within
7530+
the limit of 32 or 64 depending on the system. This is
7531+
the default policy.
7532+
7533+
- group-by-cluster if neither &quot;<a href="#nbthread">nbthread</a>&quot; not &quot;nbtgroups&quot; were set, then
7534+
one thread group is created for each CPU cluster with
7535+
available CPUs, each with as many threads as CPUs. All
7536+
threads of a group are bound to all CPUs of the cluster
7537+
so that intra-group communications remain local to the
7538+
cluster without enforcing too strong a binding. The
7539+
per-group thread limits and thread-group limits are
7540+
respected. This is recommended on multi-socket and NUMA
7541+
systems, as well as CPUs with bad inter-CCX latencies.
7542+
7543+
- performance exactly like group-by-cluster above, except that CPU
7544+
clusters whose performance is less than half of the
7545+
next more performant one are evicted. These are
7546+
typically &quot;little&quot; or &quot;efficient&quot; cores, whose addition
7547+
generally doesn't bring significant gains and can
7548+
easily be counter-productive (e.g. TLS handshakes).
7549+
Often, keeping such cores for other tasks such as
7550+
network handling is much more effective. On development
7551+
systems, these can also be used to run auxiliary tools
7552+
such as load generators and monitoring tools.
7553+
7554+
- resource this is like group-by-cluster above, except that only
7555+
the smallest and most efficient CPU cluster will be
7556+
used, while all other ones will be ignored. This can be
7557+
used to limit the resource usage to the strict minimum
7558+
that still delivers decent performance, for example to
7559+
try to further reduce power consumption or minimize the
7560+
number of cores needed on some rented systems for a
7561+
sidecar setup, in order to scale the system down more
7562+
easily. Note that if a single cluster is present, it
7563+
will still be fully used.
7564+
</pre><div class="page-header"><b>See also:</b> &quot;<a href="#cpu-map">cpu-map</a>&quot;, &quot;<a href="#cpu-set">cpu-set</a>&quot;, &quot;<a href="#nbthread">nbthread</a>&quot;</div>
7565+
<a class="anchor" name="cpu-set"></a><a class="anchor" name="3-cpu-set"></a><a class="anchor" name="3.1-cpu-set"></a><a class="anchor" name="cpu-set (Global parameters)"></a><a class="anchor" name="cpu-set (Process management and security)"></a><div class="keyword"><b><a class="anchor" name="cpu-set"></a><a href="#3.1-cpu-set">cpu-set</a></b> <span style="color: #080">&lt;directive&gt;</span>...</div><pre class="text">Allows to symbolically describe what sets of CPUs to run on. The directive
7566+
supports the following keyword:
7567+
- reset this undoes any previous limitation that could have
7568+
been inherited by a service manager or a &quot;taskset&quot;
7569+
command for example.
7570+
- drop-cpu &lt;set&gt; do not bind to CPUs in this set
7571+
- only-cpu &lt;set&gt; do not bind to CPUs not in this set
7572+
- drop-node &lt;set&gt; do not bind to CPUs belonging to this NUMA node
7573+
- only-node &lt;set&gt; do not bind to CPUs not belonging to this NUMA node
7574+
- drop-cluster &lt;set&gt; do not bind to CPUs on this hardware cluster number
7575+
- only-cluster &lt;set&gt; do not bind to CPUs on other hardware cluster number
7576+
- drop-core &lt;set&gt; do not bind to CPUs on this hardware core number
7577+
- only-core &lt;set&gt; do not bind to CPUs on other hardware core number
7578+
- drop-thread &lt;set&gt; do not bind to CPUs on this hardware thread number
7579+
- only-thread &lt;set&gt; do not bind to CPUs on other hardware thread number
7580+
</pre><div class="page-header"><b>See also:</b> &quot;<a href="#cpu-policy">cpu-policy</a>&quot;</div>
7581+
<a class="anchor" name="crt-base"></a><a class="anchor" name="3-crt-base"></a><a class="anchor" name="3.1-crt-base"></a><a class="anchor" name="crt-base (Global parameters)"></a><a class="anchor" name="crt-base (Process management and security)"></a><div class="keyword"><b><a class="anchor" name="crt-base"></a><a href="#3.1-crt-base">crt-base</a></b> <span style="color: #080">&lt;dir&gt;</span></div><pre class="text">Assigns a default directory to fetch SSL certificates from when a relative
74847582
path is used with &quot;crtfile&quot; or &quot;<span class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#">crt<span class="caret"></span></a><ul class="dropdown-menu"><li class="dropdown-header">This keyword is available in sections :</li><li><a href="#crt%20%28Load%20options%29">Load options</a></li><li><a href="#crt%20%28Alphabetically%20sorted%20keywords%20reference%29">Alphabetically sorted keywords reference</a></li><li><a href="#crt%20%28Bind%20options%29">Bind options</a></li><li><a href="#crt%20%28Server%20and%20default-server%20options%29">Server and default-server options</a></li></ul></span>&quot; directives. Absolute locations specified
74857583
prevail and ignore &quot;<span class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#">crt-base<span class="caret"></span></a><ul class="dropdown-menu"><li class="dropdown-header">This keyword is available in sections :</li><li><a href="#crt-base%20%28Process%20management%20and%20security%29">Process management and security</a></li><li><a href="#crt-base%20%28Certificate%20Storage%29">Certificate Storage</a></li></ul></span>&quot;.
74867584
</pre><a class="anchor" name="daemon"></a><a class="anchor" name="3-daemon"></a><a class="anchor" name="3.1-daemon"></a><a class="anchor" name="daemon (Global parameters)"></a><a class="anchor" name="daemon (Process management and security)"></a><div class="keyword"><b><a class="anchor" name="daemon"></a><a href="#3.1-daemon">daemon</a></b></div><pre class="text">Makes the process fork into background. This is the recommended mode of
@@ -7950,16 +8048,18 @@ <h2 id="chapter-3.1" data-target="3.1"><small><a class="small" href="#3.1">3.1.<
79508048
</pre><a class="anchor" name="no-quic"></a><a class="anchor" name="3-no-quic"></a><a class="anchor" name="3.1-no-quic"></a><a class="anchor" name="no-quic (Global parameters)"></a><a class="anchor" name="no-quic (Process management and security)"></a><div class="keyword"><b><a class="anchor" name="no-quic"></a><a href="#3.1-no-quic">no-quic</a></b></div><pre class="text">Disable QUIC transport protocol. All the QUIC listeners will still be created.
79518049
But they will not bind their addresses. Hence, no QUIC traffic will be
79528050
processed by haproxy. See also &quot;<a href="#quic_enabled">quic_enabled</a>&quot; sample fetch.
7953-
</pre><a class="anchor" name="numa-cpu-mapping"></a><a class="anchor" name="3-numa-cpu-mapping"></a><a class="anchor" name="3.1-numa-cpu-mapping"></a><a class="anchor" name="numa-cpu-mapping (Global parameters)"></a><a class="anchor" name="numa-cpu-mapping (Process management and security)"></a><div class="keyword"><b><a class="anchor" name="numa-cpu-mapping"></a><a href="#3.1-numa-cpu-mapping">numa-cpu-mapping</a></b></div><pre class="text">If running on a NUMA-aware platform, HAProxy inspects on startup the CPU
8051+
</pre><a class="anchor" name="numa-cpu-mapping"></a><a class="anchor" name="3-numa-cpu-mapping"></a><a class="anchor" name="3.1-numa-cpu-mapping"></a><a class="anchor" name="numa-cpu-mapping (Global parameters)"></a><a class="anchor" name="numa-cpu-mapping (Process management and security)"></a><div class="keyword"><b><a class="anchor" name="numa-cpu-mapping"></a><a href="#3.1-numa-cpu-mapping">numa-cpu-mapping</a></b></div><pre class="text">When running on a NUMA-aware platform with the cpu-policy is set to
8052+
&quot;first-usable-node&quot; (the default one), HAProxy inspects on startup the CPU
79548053
topology of the machine. If a multi-socket machine is detected, the affinity
79558054
is automatically calculated to run on the CPUs of a single node. This is done
79568055
in order to not suffer from the performance penalties caused by the
79578056
inter-socket bus latency. However, if the applied binding is non optimal on a
79588057
particular architecture, it can be disabled with the statement 'no
79598058
numa-cpu-mapping'. This automatic binding is also not applied if a nbthread
7960-
statement is present in the configuration, or the affinity of the process is
8059+
statement is present in the configuration, if the affinity of the process is
79618060
already specified, for example via the 'cpu-map' directive or the taskset
7962-
utility.
8061+
utility, or if the cpu-policy is set to any other value. See also &quot;<a href="#cpu-map">cpu-map</a>&quot;,
8062+
&quot;<a href="#cpu-policy">cpu-policy</a>&quot;, &quot;<a href="#cpu-set">cpu-set</a>&quot;.
79638063
</pre><a class="anchor" name="ocsp-update.disable"></a><a class="anchor" name="3-ocsp-update.disable"></a><a class="anchor" name="3.1-ocsp-update.disable"></a><a class="anchor" name="ocsp-update.disable (Global parameters)"></a><a class="anchor" name="ocsp-update.disable (Process management and security)"></a><div class="keyword"><b><a class="anchor" name="ocsp-update.disable"></a><a href="#3.1-ocsp-update.disable">ocsp-update.disable</a></b> <span style="color: #008">[ on | off ]</span></div><pre class="text">Disable completely the ocsp-update in HAProxy. Any ocsp-update configuration
79648064
will be ignored. Default is &quot;off&quot;.
79658065
See option &quot;<a href="#ocsp-update">ocsp-update</a>&quot; for more information about the auto update
@@ -31993,7 +32093,7 @@ <h2 id="chapter-11.3" data-target="11.3"><small><a class="small" href="#11.3">11
3199332093
<br>
3199432094
<hr>
3199532095
<div class="text-right">
31996-
HAProxy 3.2-dev7-23 &ndash; Configuration Manual<br>
32096+
HAProxy 3.2-dev7-83 &ndash; Configuration Manual<br>
3199732097
<small>, 2025/03/07</small>
3199832098
</div>
3199932099
</div>

docs/dev/intro.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<html lang="en">
33
<head>
44
<meta charset="utf-8" />
5-
<title>HAProxy version 3.2-dev7-23 - Starter Guide</title>
5+
<title>HAProxy version 3.2-dev7-83 - Starter Guide</title>
66
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
77
<link href="https://raw.githubusercontent.com/thomaspark/bootswatch/v3.3.7/cerulean/bootstrap.min.css" rel="stylesheet" />
88
<link href="../css/page.css?0.4.2-15" rel="stylesheet" />
@@ -484,7 +484,7 @@
484484
You can use <strong>left</strong> and <strong>right</strong> arrow keys to navigate between chapters.<br>
485485
</p>
486486
<p class="text-right">
487-
<small>Converted with <a href="https://github.com/cbonte/haproxy-dconv">haproxy-dconv</a> v<b>0.4.2-15</b> on <b>2025/03/13</b></small>
487+
<small>Converted with <a href="https://github.com/cbonte/haproxy-dconv">haproxy-dconv</a> v<b>0.4.2-15</b> on <b>2025/03/14</b></small>
488488
</p>
489489
</div>
490490
<!-- /.sidebar -->
@@ -495,7 +495,7 @@
495495
<div class="text-center">
496496
<h1><a href="http://www.haproxy.org/" title="HAProxy"><img src="../img/HAProxyCommunityEdition_60px.png?0.4.2-15" /></a></h1>
497497
<h2>Starter Guide</h2>
498-
<p><strong>version 3.2-dev7-23</strong></p>
498+
<p><strong>version 3.2-dev7-83</strong></p>
499499
<p>
500500
<br>
501501

@@ -2515,7 +2515,7 @@ <h2 id="chapter-4.4" data-target="4.4"><small><a class="small" href="#4.4">4.4.<
25152515
<br>
25162516
<hr>
25172517
<div class="text-right">
2518-
HAProxy 3.2-dev7-23 &ndash; Starter Guide<br>
2518+
HAProxy 3.2-dev7-83 &ndash; Starter Guide<br>
25192519
<small>, </small>
25202520
</div>
25212521
</div>

docs/dev/management.html

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<html lang="en">
33
<head>
44
<meta charset="utf-8" />
5-
<title>HAProxy version 3.2-dev7-23 - Management Guide</title>
5+
<title>HAProxy version 3.2-dev7-83 - Management Guide</title>
66
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
77
<link href="https://raw.githubusercontent.com/thomaspark/bootswatch/v3.3.7/cerulean/bootstrap.min.css" rel="stylesheet" />
88
<link href="../css/page.css?0.4.2-15" rel="stylesheet" />
@@ -654,7 +654,7 @@
654654
You can use <strong>left</strong> and <strong>right</strong> arrow keys to navigate between chapters.<br>
655655
</p>
656656
<p class="text-right">
657-
<small>Converted with <a href="https://github.com/cbonte/haproxy-dconv">haproxy-dconv</a> v<b>0.4.2-15</b> on <b>2025/03/13</b></small>
657+
<small>Converted with <a href="https://github.com/cbonte/haproxy-dconv">haproxy-dconv</a> v<b>0.4.2-15</b> on <b>2025/03/14</b></small>
658658
</p>
659659
</div>
660660
<!-- /.sidebar -->
@@ -665,7 +665,7 @@
665665
<div class="text-center">
666666
<h1><a href="http://www.haproxy.org/" title="HAProxy"><img src="../img/HAProxyCommunityEdition_60px.png?0.4.2-15" /></a></h1>
667667
<h2>Management Guide</h2>
668-
<p><strong>version 3.2-dev7-23</strong></p>
668+
<p><strong>version 3.2-dev7-83</strong></p>
669669
<p>
670670
<br>
671671

@@ -1232,6 +1232,9 @@ <h1 id="chapter-summary" data-target="summary">Summary</h1>
12321232
foreground. It is mainly used during development or during small tests, as
12331233
Ctrl-C is enough to stop the process. Never use it in an init script.
12341234

1235+
-dc : enable CPU affinity debugging. The list of selected and evicted CPUs as
1236+
well as their topology will be reported before starting.
1237+
12351238
-de : disable the use of the &quot;epoll&quot; poller. It is equivalent to the &quot;global&quot;
12361239
section's keyword &quot;noepoll&quot;. It is mostly useful when suspecting a bug
12371240
related to this poller. On systems supporting epoll, the fallback will
@@ -5466,7 +5469,7 @@ <h2 id="chapter-13.1" data-target="13.1"><small><a class="small" href="#13.1">13
54665469
<br>
54675470
<hr>
54685471
<div class="text-right">
5469-
HAProxy 3.2-dev7-23 &ndash; Management Guide<br>
5472+
HAProxy 3.2-dev7-83 &ndash; Management Guide<br>
54705473
<small>, </small>
54715474
</div>
54725475
</div>

0 commit comments

Comments
 (0)