Threads + thread queue length

Viktor Villafuerte viktor.villafuerte at optusnet.com.au
Thu Nov 12 02:40:27 CET 2015


I think I might have found the problem here.. :/

thread_pool_add_delay

the doco says that the values are in milliseconds but if I set this to 2
(which should be 2ms) it makes the server handle traffic very badly and
only very gradually increases perfomance.. However if I set this to 0
then everything runs immediately and well. Furthermore in the docs it
says:

Reducing the add_delay lets you create threads faster which is
essential - specially at startup - to avoid filling up the queue and
dropping requests.

which would exactly fit my (sad) scenario below..


Could anybody confirm that the value is in milliseconds and not in
seconds?

thanks

v



On Wed 11 Nov 2015 09:52:52, Viktor Villafuerte wrote:
> I'm bumping this 'thread' up to the top since CJ Ess has just asked a
> question related to threads also.. I hate doing this but I'm hoping that
> somebody could (maybe) answer this too..?
> 
> v
> 
> On Mon 12 Oct 2015 15:17:05, Viktor Villafuerte wrote:
> > Hi all you carpenters and other Varnish using folk,
> > 
> > There are couple of things in the output of varnishstat that puzzle me a
> > little..
> > 
> > MAIN.sess_drop               0         0.00 Sessions dropped
> > MAIN.sess_dropped            3809332         0.32 Sessions dropped for
> > thread
> > MAIN.fetch_no_thread           58746         0.01 Fetch failed (no
> > thread)
> > MAIN.pools                         2          .   Number of thread pools
> > MAIN.threads                    1255          .   Total number of
> > threads
> > 
> > I've got 2 pools of 4000 threads set in Varnish config and
> > man varnish-counters says:
> > 
> > sess_drop
> > Count of sessions silently dropped due to lack of worker thread.
> > 
> > sess_dropped
> > Number of times session was dropped because the queue were too long
> > already. See also parameter queue_max.
> > 
> > fetch_no_thread
> > beresp fetch failed, no thread available
> > 
> > 
> > This tells me that there's no lack of worker threads (good!), but the
> > thread queue length does get too long and subsequently sessions get
> > dropped (bad!). Also backend fetch failed due to no threads being
> > available (what?)
> > 
> > 
> > Now the puzzling bit :)
> > 
> > 1) why would the thread queue get too long if there seems to be NO lack
> > of threads to use?
> > 
> > 2) why would there be no threads if there seems to be NO lack of threads
> > 
> > 3) 'See also the parameter queue_max' - but I cannot find any mention of
> > such parameter anywhere around? Where does this ellusive paramater live
> > then?
> > 
> > 
> > Could anybody shed bit of light on this for me?
> > 
> > 
> > 
> > 
> > -- 
> > Regards
> > 
> > Viktor Villafuerte
> > Optus Internet Engineering
> > t: +61 2 80825265
> > 
> > _______________________________________________
> > varnish-misc mailing list
> > varnish-misc at varnish-cache.org
> > https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
> 
> -- 
> Regards
> 
> Viktor Villafuerte
> Optus Internet Engineering
> t: +61 2 80825265
> 
> _______________________________________________
> varnish-misc mailing list
> varnish-misc at varnish-cache.org
> https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc

-- 
Regards

Viktor Villafuerte
Optus Internet Engineering
t: +61 2 80825265



More information about the varnish-misc mailing list