This section contains a few options that set
how we want the operating system to treat Cherokee. The most important
option here is the File descriptor number
(max_fds
) limit.
File descriptor number: range values: 128 - 32768, default OS setting
(i.e. 1024, etc.).
It defines how many file descriptors the server can handle.
See also: ulimit -n max_fds
shell command.
Keep in mind that the max. number of concurrent connections
that can be handled is printed by the server at startup and
it is roughly a bit less than (max_fds / 2).
If the server is very slow in replying to new connections
or if it fails to accept new requests under heavy load,
you may investigate and choose to raise this limit.
NOTE: using select
or win32
pollers may limit the max. number of file descriptors to a low value
(i.e. only 256 per thread, 256 * 5 = 1280).
The web server can be configured to use some system call under certain circumstances. Using the Polling method it is possible to force the server to use a specific file descriptor polling method. It is not recommended though.
The sendfile minimum and maximum limit can he
set to point the server when to use this system call. Depending on the
operating system these limit may vary.
Min. limit: range values: 1 - 2147483647, default: 32768
Max. limit: range values: 1 - 2147483647, default: 2147483647
Finally, the Panic Action option allows you to define a program that will be called if, by some reason, the server fails. By default, it should be cherokee-panic.
The Reuse Connections field allows to set the
number of how many internal connections should be hold for reuse. It's
an optimization tweaking option.
Reuse connections: range values: 0 - 128, default 20.
Log flush time sets the number of seconds
between log consolidations (flushes).
Setting this number to a value greater than 1 - 2 seconds,
usually has a significant positive impact
on performance but this can lead to a loss of log data in case
of an unclean server close or shutdown.
Log flush time: range values: 0 - 60, default 10.
Finally, the Max Keepalive requests allows to
specify the max. number of HTTP requests that can be served by each
keepalive connection. A high number is usually okay.
Max Keepalive requests: range values: 1 - 2147483647, default 500.