The acceptor already has a back-off feature for when we run out of
filedescriptors, generalize that concept and use it for all cases where we cannot accept and/or serve the connection: (Lack of sessions, lack of workerthreads). This is controlled by three paramters: Everytime we run into trouble, we increase the sleep-time by: acceptor_sleep_incr (0.001 s) But we never let it get above acceptor_sleep_max (0.050 s) Once we manage to accept and schedule a connection, we multiply the sleep-time by: acceptor_sleep_decay (0.9) The default numbers are more or less picked out of thin air. Two new stats counters help us keep track of this: accept_fail where accept(2) returns error. This can be out of file-descriptors, but also clients which closed while they were stuck in the accept-queue. Under normal operation, a minor trickle is probably to be expected. client_drop New connection dropped, because we could not get a session for it, or because the workerthreads were too busy. client_drop_late An previously served connection was dropped for the same reasons. As always, feedback welcome. git-svn-id: http://www.varnish-cache.org/svn/trunk@4497 d4fa192b-c00b-0410-8231-f00ffab90ce4
Showing
Please register or sign in to comment