[DOC] document maxpipes, nosplice, option splice-{auto,request,response}
This commit is contained in:
parent
9b97cff1c2
commit
ff4f82d7ff
@ -68,10 +68,12 @@ The following keywords are supported in the "global" section :
|
|||||||
|
|
||||||
* Performance tuning
|
* Performance tuning
|
||||||
- maxconn
|
- maxconn
|
||||||
|
- maxpipes
|
||||||
- noepoll
|
- noepoll
|
||||||
- nokqueue
|
- nokqueue
|
||||||
- nopoll
|
- nopoll
|
||||||
- nosepoll
|
- nosepoll
|
||||||
|
- nosplice
|
||||||
- spread-checks
|
- spread-checks
|
||||||
- tune.maxaccept
|
- tune.maxaccept
|
||||||
- tune.maxpollevents
|
- tune.maxpollevents
|
||||||
@ -198,6 +200,14 @@ maxconn <number>
|
|||||||
connections when this limit is reached. The "ulimit-n" parameter is
|
connections when this limit is reached. The "ulimit-n" parameter is
|
||||||
automatically adjusted according to this value. See also "ulimit-n".
|
automatically adjusted according to this value. See also "ulimit-n".
|
||||||
|
|
||||||
|
maxpipes <number>
|
||||||
|
Sets the maximum per-process number of pipes to <number>. Currently, pipes
|
||||||
|
are only used by kernel-based tcp splicing. Since a pipe contains two file
|
||||||
|
descriptors, the "ulimit-n" value will be increased accordingly. The default
|
||||||
|
value is maxconn/4, which seems to be more than enough for most heavy usages.
|
||||||
|
The splice code dynamically allocates and releases pipes, and can fall back
|
||||||
|
to standard copy, so setting this value too low may only impact performance.
|
||||||
|
|
||||||
noepoll
|
noepoll
|
||||||
Disables the use of the "epoll" event polling system on Linux. It is
|
Disables the use of the "epoll" event polling system on Linux. It is
|
||||||
equivalent to the command-line argument "-de". The next polling system
|
equivalent to the command-line argument "-de". The next polling system
|
||||||
@ -220,6 +230,16 @@ nosepoll
|
|||||||
is equivalent to the command-line argument "-ds". The next polling system
|
is equivalent to the command-line argument "-ds". The next polling system
|
||||||
used will generally be "epoll". See also "nosepoll", and "nopoll".
|
used will generally be "epoll". See also "nosepoll", and "nopoll".
|
||||||
|
|
||||||
|
nosplice
|
||||||
|
Disables the use of kernel tcp splicing between sockets on Linux. It is
|
||||||
|
equivalent to the command line argument "-dS". Data will then be copied
|
||||||
|
using conventional and more portable recv/send calls. Kernel tcp splicing is
|
||||||
|
limited to some very recent instances of kernel 2.6. Most verstions between
|
||||||
|
2.6.25 and 2.6.28 are buggy and will forward corrupted data, so they must not
|
||||||
|
be used. This option makes it easier to globally disable kernel splicing in
|
||||||
|
case of doubt. See also "option splice-auto", "option splice-request" and
|
||||||
|
"option splice-response".
|
||||||
|
|
||||||
spread-checks <0..50, in percent>
|
spread-checks <0..50, in percent>
|
||||||
Sometimes it is desirable to avoid sending health checks to servers at exact
|
Sometimes it is desirable to avoid sending health checks to servers at exact
|
||||||
intervals, for instance when many logical servers are located on the same
|
intervals, for instance when many logical servers are located on the same
|
||||||
@ -565,6 +585,9 @@ option httplog X X X X
|
|||||||
[no] option persist X - X X
|
[no] option persist X - X X
|
||||||
[no] option redispatch X - X X
|
[no] option redispatch X - X X
|
||||||
option smtpchk X - X X
|
option smtpchk X - X X
|
||||||
|
[no] option splice-auto X X X X
|
||||||
|
[no] option splice-request X X X X
|
||||||
|
[no] option splice-response X X X X
|
||||||
[no] option srvtcpka X - X X
|
[no] option srvtcpka X - X X
|
||||||
option ssl-hello-chk X - X X
|
option ssl-hello-chk X - X X
|
||||||
option tcpka X X X X
|
option tcpka X X X X
|
||||||
@ -2236,6 +2259,96 @@ option smtpchk <hello> <domain>
|
|||||||
See also : "option httpchk", "source"
|
See also : "option httpchk", "source"
|
||||||
|
|
||||||
|
|
||||||
|
option splice-auto
|
||||||
|
no option splice-auto
|
||||||
|
Enable or disable automatic kernel acceleration on sockets in both directions
|
||||||
|
May be used in sections : defaults | frontend | listen | backend
|
||||||
|
yes | yes | yes | yes
|
||||||
|
Arguments : none
|
||||||
|
|
||||||
|
When this option is enabled either on a frontend or on a backend, haproxy
|
||||||
|
will automatically evaluate the opportunity to use kernel tcp splicing to
|
||||||
|
forward data between the client and the server, in either direction. Haproxy
|
||||||
|
uses heuristics to estimate if kernel splicing might improve performance or
|
||||||
|
not. Both directions are handled independantly. Note that the heuristics used
|
||||||
|
are not much aggressive in order to limit excessive use of splicing. This
|
||||||
|
option requires splicing to be enabled at compile time, and may be globally
|
||||||
|
disabled with the global option "nosplice". Since splice uses pipes, using it
|
||||||
|
requires that there are enough spare pipes.
|
||||||
|
|
||||||
|
Important note: kernel-based TCP splicing is a Linux-specific feature which
|
||||||
|
first appeared in kernel 2.6.25. It offers kernel-based acceleration to
|
||||||
|
transfer data between sockets without copying these data to user-space, thus
|
||||||
|
providing noticeable performance gains and CPU cycles savings. Since many
|
||||||
|
early implementations are buggy, corrupt data and/or are inefficient, this
|
||||||
|
feature is not enabled by default, and it should be used with extreme care.
|
||||||
|
While it is not possible to detect the correctness of an implementation,
|
||||||
|
2.6.29 is the first version offering a properly working implementation. In
|
||||||
|
case of doubt, splicing may be globally disabled using the global "nosplice"
|
||||||
|
keyword.
|
||||||
|
|
||||||
|
Example :
|
||||||
|
option splice-auto
|
||||||
|
|
||||||
|
If this option has been enabled in a "defaults" section, it can be disabled
|
||||||
|
in a specific instance by prepending the "no" keyword before it.
|
||||||
|
|
||||||
|
See also : "option splice-request", "option splice-response", and global
|
||||||
|
options "nosplice" and "maxpipes"
|
||||||
|
|
||||||
|
|
||||||
|
option splice-request
|
||||||
|
no option splice-request
|
||||||
|
Enable or disable automatic kernel acceleration on sockets for requests
|
||||||
|
May be used in sections : defaults | frontend | listen | backend
|
||||||
|
yes | yes | yes | yes
|
||||||
|
Arguments : none
|
||||||
|
|
||||||
|
When this option is enabled either on a frontend or on a backend, haproxy
|
||||||
|
will user kernel tcp splicing whenever possible to forward data going from
|
||||||
|
the client to the server. It might still use the recv/send scheme if there
|
||||||
|
are no spare pipes left. This option requires splicing to be enabled at
|
||||||
|
compile time, and may be globally disabled with the global option "nosplice".
|
||||||
|
Since splice uses pipes, using it requires that there are enough spare pipes.
|
||||||
|
|
||||||
|
Important note: see "option splice-auto" for usage limitations.
|
||||||
|
|
||||||
|
Example :
|
||||||
|
option splice-request
|
||||||
|
|
||||||
|
If this option has been enabled in a "defaults" section, it can be disabled
|
||||||
|
in a specific instance by prepending the "no" keyword before it.
|
||||||
|
|
||||||
|
See also : "option splice-auto", "option splice-response", and global options
|
||||||
|
"nosplice" and "maxpipes"
|
||||||
|
|
||||||
|
|
||||||
|
option splice-response
|
||||||
|
no option splice-response
|
||||||
|
Enable or disable automatic kernel acceleration on sockets for responses
|
||||||
|
May be used in sections : defaults | frontend | listen | backend
|
||||||
|
yes | yes | yes | yes
|
||||||
|
Arguments : none
|
||||||
|
|
||||||
|
When this option is enabled either on a frontend or on a backend, haproxy
|
||||||
|
will user kernel tcp splicing whenever possible to forward data going from
|
||||||
|
the server to the client. It might still use the recv/send scheme if there
|
||||||
|
are no spare pipes left. This option requires splicing to be enabled at
|
||||||
|
compile time, and may be globally disabled with the global option "nosplice".
|
||||||
|
Since splice uses pipes, using it requires that there are enough spare pipes.
|
||||||
|
|
||||||
|
Important note: see "option splice-auto" for usage limitations.
|
||||||
|
|
||||||
|
Example :
|
||||||
|
option splice-response
|
||||||
|
|
||||||
|
If this option has been enabled in a "defaults" section, it can be disabled
|
||||||
|
in a specific instance by prepending the "no" keyword before it.
|
||||||
|
|
||||||
|
See also : "option splice-auto", "option splice-request", and global options
|
||||||
|
"nosplice" and "maxpipes"
|
||||||
|
|
||||||
|
|
||||||
option srvtcpka
|
option srvtcpka
|
||||||
no option srvtcpka
|
no option srvtcpka
|
||||||
Enable or disable the sending of TCP keepalive packets on the server side
|
Enable or disable the sending of TCP keepalive packets on the server side
|
||||||
|
Loading…
x
Reference in New Issue
Block a user