- max_connections
Sets the maximum number of
workers. That's basically the number of concurrent connections the
server is capable to process. Default is 250. There are some limits set
by the OS, but hssTVS will try to increase the number of max open
filedescriptors accordingly. So there's no need to use ulimit for that
anymore.
- http_header_size
Maximum size of the receive
buffer for http requests. Default is 2500 (bytes), smaller values are
ignored. One customer had problems as the typical header contains one
or several history cookies which might get pretty large. So it is now
possible to increase the buffer size as needed. Bigger buffers will
need more memory per connection and it will slow the parsing down.
Every connection needs 2 receive buffers (for pipelining purposes)
which are pre-allocated at start-up, so don't enlarge it without real
need.
- worker_timeout
The time a connection with a stalling transmission will hang around
until it is forcefully closed.
- keep_alive
Seconds to wait until an
idle persistent connection is closed after the last request is
finished. Defaults to a setting of 1. The problem is that many browsers
use more than 1 connection. For example Opera uses 4 to 8, while
Mozilla related ones use normally 2, but often can be set higher. Those
remain open, often unused until they time out. For the sake of
persistent connections, which can enhance the max number of requests
per second the server can handle by up to 200%, you should keep that at
least at 1 second. A 0 closes the connection right after a request is
finished unless the next is already in the receive buffer (pipelining).
- keep_alive_num
Max number of requests per
persistent connection until close is forced, 0 for no max. Defaults to
0. A limit (usually 5 to 20) can help reducing the response time on
high load servers as well as reduce the effect of a possible abuse of
persistent connections.
- use LRU
This is a flag and takes no value. The newer LRU cache subsystem is more
flexible. It creates stat_entries in the cache memory as needed. If this
flag is not set, the sLRU will be used (old one) and you might need to
specify the number of just stat entries.
- max_cached_size
This value determins how
big a file might be(in bytes) to be added to the cache. While we see a
major speed up for small files that reside in the cache, the advantage
diminishes when the files get bigger. So, to make the most out of the
ram you set aside as a cache you have to draw a line to shut out the
bigger files. The default is set to 32KByte and anything bigger would
be a waste under normal circumstances, 0 disables the file mmaping of
the cache.
- max_cache
The maximum size of the
cache in MBytes. We have to make sure that we don't exceed the systems
real ram at any time. The server has no means to determin when that'll
happen until even the swap area is used up completely. The moment the
system requires to swap memory in and out, the moment the whole system
suffers a major slow down. Another fact is that you are limited to
around 2GByte address space per process on a 32Bit engine, no matter
how much (virtual)ram you really have. The default setting is 50
MBytes, 0 disables the file mmaping of the cache.
- cache_keep
This value determins how
long an idle file entry will stay in the cache (in seconds). It also
kinda limits the numbers of files that fill the cache manger up, so it
might speed things a bit up if we get rid of the idle ones after a
time. The default is off, the maximum is 1 day, 0 disables the
cleaner.
- cf_check
This entry specifies the
time intervall in seconds cached files are checked against the original
on the disk to catch updates. The default is 60 seconds. A high number
will give better performance but will also make hssTVS fail to
recognice changed files.
- just_stat_entry_max
This setting is only needed/
used for sLRU, LRU stat entries reside in the cache ram.
The cache works in 2 ways. The main mode caches a file's status data
and mmaps the file into memory. But in case the file is too big, there
is not enough space left or if the mmapping is disabled, only the status
data is stored and parts of its header pre-created. This value limits
the number of such entries. The default (and minimum) is to use twice
the number of max_connections. hssTVS will increase the number if set
too low.
- disable mmap
This is a flag and takes
no value. This will disable the mmapping functionallity of the cache
subsystem. File status information is still stored though, giving a bit
more speed (not overwhelming though). Only the just_stat_entry_max is
used, the other cache related values are ignored. This will drastically
slow the system down, so be sure you really want it that way and don't
complain afterwards.
- disable cache
This is a flag and takes
no value. If you put this into the configuration the cache will be
completely disabled. No files will be mapped and no status information
stored. The whole thing is just bypassed. Of course all other cache
related settings will be ignored then and it does overrule the "disable
mmap" setting. However, this will drastically slow the system down, so
be sure you really want it that way and don't complain afterwards.
- check_intervall
Defines the time in seconds
the server checks for idle cache entries and workers. A short intervall
will use up more CPU time but will give a more accurate handling of the
involved timers. Default is 3 seconds.
- stat_intervall
The intervall is set in seconds, default is -1 (off). Since 0.209 the
server can give you some numbers about its load and the cache
usage/efficiency:
date+time | time since last check | connection counter | request
counter | max load | amount sent | cache stats
The values are always the
gathered ones since the last time the stats were retrieved. In case
you don't want those stats logged in intervalls you can also
retrieve them by sending a SIGUSR1 signal ( []kill -SIGUSR1 `cat /var/run/hsstvs.pid` ). This
feature is intended for monitoring and tuning.
Warning, to use the
signal you have to set stat_intervall to -1, else the numbers will not be correct.