Reducing overflowed and dropped work requests

Simon Males sime at
Wed Aug 3 08:40:30 CEST 2011

On Fri, Jul 15, 2011 at 11:15 AM, Simon Males <sime at> wrote:
>> The Varnish munin plugins have alerted me a number of times (say less
>> then 5) that N dropped work requests (n_wrk_drop) is greater then 1.
>> According to Kristian Lyngstol's post [1] this is represents when the
>> request queue it full. Additionally I believe the overflowed work
>> requests (n_wrk_overflow) will always be greater then n_wrk_drop.
>> I think I should be trying to tackle two issues: Limit requests
>> overflowing, followed by increasing the size of the request queue.
>> Of the below startup parameters I believe thread_pools should match
>> the number of cores the server has and increase the maximum number of
>> threads to possibly double (from 25 to 50?).
>> DAEMON_OPTS="-a :80 \
>>             -T localhost:6082 \
>>             -f /etc/varnish/default.vcl \
>>             -S /etc/varnish/secret \
>>             -w 10,25,120 \
>>             -p listen_depth=8192 \
>>             -p log_hashstring=off \
>>             -p lru_interval=60 \
>>             -p sess_timeout=10 \
>>             -p shm_workspace=32768 \
>>             -p ping_interval=1 \
>>             -p thread_pools=4 \
>>             -s malloc,2G"
> As overflow_max is default set to 100%, I believe I essentially need
> to increase the number of worker threads to increase the ratio. To
> increase the threads, I'll increase the thread_pools.

Since this post, I increased the thread_pools to 8, though today I've
had another spurt of dropped work requests. It's definitely related to
a sudden rise of traffic, as the dropped requests happen moment after
sending an E-Mail to our users.

The servers have 16 cores, so I've increased the thread_pools to 16
now. With 10 minimum threads per pool, I now have 160 threads waiting
to serve.

Hopefully this will minimise the chance of dropping work requests.

Simon Males

More information about the varnish-misc mailing list