The min is per pool, the max is aggregate.  That was a little confusing to me 
too, at first.

Memory (stacks) is the primary bottleneck; you'll run out RAM long before 
modern kernels have trouble with thread counts.

Note that increasing the thread count is only useful (vs being a crutch for a 
bad backend) for long-lived or unreliable backend requests and long-lived 
client requests (mainly HTTP keepalives).  Past around double your CPU core 
count is all you'd need if Varnish were purely CPU-bound.  And that will happen 
only with many gigabits of traffic. :-)

So, assuming you're not obscuring some sort of failure up- or down-stream from 
Varnish, I'd tune your max to something like 2-3x your steady state worker 
count, and increase as necessary.

Hope it helps,
-- 
Ken

On Jul 15, 2010, at 10:19 AM, Caunter, Stefan wrote:

> Hi, running varnish on dual processor, dual core system with 4GB ram, we hit 
> thread pool limit (500) this morning, and so are defining 4 thread pools, 200 
> min, and a 2500 maximum limit.
>  
> I now see 800 threads created on start. I cannot see in the docs anything 
> that says max limit is for all thread pools. We’ve set 
> kern.threads.max_threads_per_proc to 4096 and increased the other tuning 
> settings.
>  
> Can we assume thread_pool_max is the summary of all thread pools?
>  
> Can we get the thread pool maximum higher with better hardware and a custom 
> kernel set for higher tuning settings?
>  
> Stefan Caunter :: Senior Systems Administrator :: TOPS
> e: [email protected]  ::  m: (416) 561-4871
> www.thestar.com www.topscms.com
>  
> _______________________________________________
> varnish-misc mailing list
> [email protected]
> http://lists.varnish-cache.org/mailman/listinfo/varnish-misc

_______________________________________________
varnish-misc mailing list
[email protected]
http://lists.varnish-cache.org/mailman/listinfo/varnish-misc

Reply via email to