"maxthr" state

Julian Elischer julian at elischer.org
Tue Jan 27 04:21:15 PST 2004



On Tue, 27 Jan 2004, Daniel Eischen wrote:

> On Mon, 26 Jan 2004, Craig Rodrigues wrote:
> 
> > On Fri, Jan 23, 2004 at 03:25:19PM -0800, Julian Elischer wrote:
> > > 
> > > 
> > > On Fri, 23 Jan 2004, Alex Boisvert wrote:
> > > 
> > > > 
> > > > Nevermind, I discovered the kernel sysctl 
> > > > "kern.threads.max_threads_per_proc" with default value 150.  I bumped 
> > > > the value to 300 and the app runs fine.  (We simulate 250 clients with 
> > > > 250 connections or threads, hence the need for a large value...)
> > > 
> > > yes, the number could be made bigger but we didn't want to make it
> > > too easy for wildly out-of-control threadded programs to
> > > kill the system while the threading system is still "young"..
> > 
> > 150 is a perfectly reasonable number to start with, but I can see it 
> > could be a problem later on when KSE goes "live".
> > Due to programming languages like Java, there are a lot
> > of threads-happy coders out there (unfortunately).
> 
> Remember though that kern.threads.max_threads_per_proc are the
> number of kernel threads for the process, not the number of
> userland threads.  Threads blocked in userland don't consume
> a kernel thread.  On the other hand, if the threads are IO
> bound, they will get blocked in the kernel and consume a
> kernel thread.

We are limitted by hardware to 8191 kernel threads on x86
but that could be a LOT of user threads..

Hmm how many 64k stacks can you fit in 2GB?
hmmmm  2^16 into 2^31...    well that limits us to 32k threads :-)



> 
> -- 
> Dan Eischen
> 
> 



More information about the freebsd-threads mailing list