System tweaking

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).

Server tweaking

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.

Server behaviour

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.