|
2 | 2 | <html lang="en"> |
3 | 3 | <head> |
4 | 4 | <meta charset="utf-8" /> |
5 | | - <title>HAProxy version 3.2-dev4-3 - Configuration Manual</title> |
| 5 | + <title>HAProxy version 3.2-dev4-5 - Configuration Manual</title> |
6 | 6 | <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" /> |
7 | 7 | <link href="https://raw.githubusercontent.com/thomaspark/bootswatch/v3.3.7/cerulean/bootstrap.min.css" rel="stylesheet" /> |
8 | 8 | <link href="../css/page.css?0.4.2-15" rel="stylesheet" /> |
|
4093 | 4093 |
|
4094 | 4094 | <a class="list-group-item" href="#tune.disable-zero-copy-forwarding">tune.disable-zero-copy-forwarding</a> |
4095 | 4095 |
|
| 4096 | + <a class="list-group-item" href="#tune.epoll.mask-events">tune.epoll.mask-events</a> |
| 4097 | + |
4096 | 4098 | <a class="list-group-item" href="#tune.events.max-events-at-once">tune.events.max-events-at-once</a> |
4097 | 4099 |
|
4098 | 4100 | <a class="list-group-item" href="#tune.fail-alloc">tune.fail-alloc</a> |
|
4448 | 4450 | You can use <strong>left</strong> and <strong>right</strong> arrow keys to navigate between chapters.<br> |
4449 | 4451 | </p> |
4450 | 4452 | <p class="text-right"> |
4451 | | - <small>Converted with <a href="https://github.com/cbonte/haproxy-dconv">haproxy-dconv</a> v<b>0.4.2-15</b> on <b>2025/01/24</b></small> |
| 4453 | + <small>Converted with <a href="https://github.com/cbonte/haproxy-dconv">haproxy-dconv</a> v<b>0.4.2-15</b> on <b>2025/01/27</b></small> |
4452 | 4454 | </p> |
4453 | 4455 | </div> |
4454 | 4456 | <!-- /.sidebar --> |
|
4459 | 4461 | <div class="text-center"> |
4460 | 4462 | <h1><a href="http://www.haproxy.org/" title="HAProxy"><img src="../img/HAProxyCommunityEdition_60px.png?0.4.2-15" /></a></h1> |
4461 | 4463 | <h2>Configuration Manual</h2> |
4462 | | - <p><strong>version 3.2-dev4-3</strong></p> |
| 4464 | + <p><strong>version 3.2-dev4-5</strong></p> |
4463 | 4465 | <p> |
4464 | 4466 | 2025/01/24<br> |
4465 | 4467 |
|
@@ -7181,6 +7183,7 @@ <h2 id="chapter-2.9" data-target="2.9"><small><a class="small" href="#2.9">2.9.< |
7181 | 7183 | - <a href="#tune.comp.maxlevel">tune.comp.maxlevel</a> |
7182 | 7184 | - <a href="#tune.disable-fast-forward">tune.disable-fast-forward</a> |
7183 | 7185 | - <a href="#tune.disable-zero-copy-forwarding">tune.disable-zero-copy-forwarding</a> |
| 7186 | + - <a href="#tune.epoll.mask-events">tune.epoll.mask-events</a> |
7184 | 7187 | - <a href="#tune.events.max-events-at-once">tune.events.max-events-at-once</a> |
7185 | 7188 | - <a href="#tune.fail-alloc">tune.fail-alloc</a> |
7186 | 7189 | - <a href="#tune.fd.edge-triggered">tune.fd.edge-triggered</a> |
@@ -8802,7 +8805,32 @@ <h2 id="chapter-3.2" data-target="3.2"><small><a class="small" href="#3.2">3.2.< |
8802 | 8805 | Thanks to this directive, it is possible to disable this optimization. Note |
8803 | 8806 | it also disable any kernel tcp splicing. |
8804 | 8807 | </pre><div class="page-header"><b>See also:</b> tune.pt.zero-copy-forwarding, tune.applet.zero-copy-forwarding, tune.h1.zero-copy-fwd-recv, tune.h1.zero-copy-fwd-send, tune.h2.zero-copy-fwd-send, tune.quic.zero-copy-fwd-send</div> |
8805 | | -<a class="anchor" name="tune.events.max-events-at-once"></a><a class="anchor" name="3-tune.events.max-events-at-once"></a><a class="anchor" name="3.2-tune.events.max-events-at-once"></a><a class="anchor" name="tune.events.max-events-at-once (Global parameters)"></a><a class="anchor" name="tune.events.max-events-at-once (Performance tuning)"></a><div class="keyword"><b><a class="anchor" name="tune.events.max-events-at-once"></a><a href="#3.2-tune.events.max-events-at-once">tune.events.max-events-at-once</a></b> <span style="color: #080"><number></span></div><pre class="text">Sets the number of events that may be processed at once by an asynchronous |
| 8808 | +<a class="anchor" name="tune.epoll.mask-events"></a><a class="anchor" name="3-tune.epoll.mask-events"></a><a class="anchor" name="3.2-tune.epoll.mask-events"></a><a class="anchor" name="tune.epoll.mask-events (Global parameters)"></a><a class="anchor" name="tune.epoll.mask-events (Performance tuning)"></a><div class="keyword"><b><a class="anchor" name="tune.epoll.mask-events"></a><a href="#3.2-tune.epoll.mask-events">tune.epoll.mask-events</a></b> <span style="color: #080"><event<span style="color: #008">[,...]</span>></span></div><pre class="text">Along HAProxy's history, a few complex issues were met that were caused by |
| 8809 | +bugs in the epoll mechanism in the Linux kernel. These ones usually are very |
| 8810 | +rare and unreproducible outside the reporter's environment, and may only be |
| 8811 | +worked around by disabling epoll and switching to poll instead, which is not |
| 8812 | +very satisfying for high performance environments. Each time, issues affect |
| 8813 | +only very specific (and rare) event types, and offering the ability to mask |
| 8814 | +them can constitute a more acceptable work-around. This options offers this |
| 8815 | +possibility by permitting to silently ignore events a few uncommon events |
| 8816 | +and replace them with an input (which reports an unspecified incoming event). |
| 8817 | +The effect is to avoid the fast error processing paths in certain places and |
| 8818 | +only use the common paths. This should never be used unless being invited to |
| 8819 | +do so by an expert in order to diagnose or work around a kernel bug. |
| 8820 | + |
| 8821 | +The option takes a single argument which is a comma-delimited list of words |
| 8822 | +each designating an event to be masked. The currently supported list of |
| 8823 | +events is: |
| 8824 | + - "err": mask the EPOLLERR event |
| 8825 | + - "hup": mask the EPOLLHUP events |
| 8826 | + - "rdhup": mask the EPOLLRDHUP events |
| 8827 | +</pre><div class="separator"> |
| 8828 | +<span class="label label-success">Example:</span> |
| 8829 | +<pre class="prettyprint"> |
| 8830 | +<code><span class="comment"># mask all non-traffic epoll events:</span> |
| 8831 | +tune.epoll.mask-events err,hup,rdhup |
| 8832 | +</code></pre> |
| 8833 | +</div><a class="anchor" name="tune.events.max-events-at-once"></a><a class="anchor" name="3-tune.events.max-events-at-once"></a><a class="anchor" name="3.2-tune.events.max-events-at-once"></a><a class="anchor" name="tune.events.max-events-at-once (Global parameters)"></a><a class="anchor" name="tune.events.max-events-at-once (Performance tuning)"></a><div class="keyword"><b><a class="anchor" name="tune.events.max-events-at-once"></a><a href="#3.2-tune.events.max-events-at-once">tune.events.max-events-at-once</a></b> <span style="color: #080"><number></span></div><pre class="text">Sets the number of events that may be processed at once by an asynchronous |
8806 | 8834 | task handler (from event_hdl API). <number> should be included between 1 |
8807 | 8835 | and 10000. Large number could cause thread contention as a result of the |
8808 | 8836 | task doing heavy work without interruption, and on the other hand, small |
@@ -31764,7 +31792,7 @@ <h2 id="chapter-11.3" data-target="11.3"><small><a class="small" href="#11.3">11 |
31764 | 31792 | <br> |
31765 | 31793 | <hr> |
31766 | 31794 | <div class="text-right"> |
31767 | | - HAProxy 3.2-dev4-3 – Configuration Manual<br> |
| 31795 | + HAProxy 3.2-dev4-5 – Configuration Manual<br> |
31768 | 31796 | <small>, 2025/01/24</small> |
31769 | 31797 | </div> |
31770 | 31798 | </div> |
|
0 commit comments