You're not doing anything wrong. You have a thread timeout. So after 60 seconds, the idle thread exits. Maybe there is a bug in pools.c, but what is happening is that at startup, minthreads are created. If you go in and increase minthreads after starup of the pool, the minthreads will not increase, ever. But if new requests come in, new threads will be created. They are probably being serviced so fast that you never get too many at once showing up. If this isn't the case, then it could be a problem.
So maybe play around with the timeout value, maybe if it is zero they don't timeout. If you want threads to exit at some point, use maxconnections to make them exit. So the problem is very likely that as maxconns is reached, threads are deleted, but there is never any check that numthreads have fallent below a minimum value. Hopefully you will reach a number of threads necessary to service the requests without going over maxthreads, but minthreads appears to be only a hint for startup, after that the threadpools regulates itself to minimum resources. However...does it ever reach zero, because if it does, I have noticed that the threadpool no longer responds to requests. This would be a definite bug. tom jackson On Monday 01 October 2007 07:45, Shedi Shedi wrote: > You said that current should never drop below min. But in my case after > threads have serviced configured number of requests they start to die. idle > and current keeps dropping until 0 and never comes up again. > > The server logs shows lines like: > [01/Oct/2007:16:41:43][20634.3027639200][-conn:335-] Notice: exiting: > exceeded max connections per thread > [01/Oct/2007:16:42:19][20634.3027499936][-conn:336-] Notice: exiting: > exceeded max connections per thread > [01/Oct/2007:16:42:37][20634.3027360672][-conn:337-] Notice: exiting: > exceeded max connections per thread > > It looks like as threads begin to die after servicing 150 requests no new > threads are created. > > nspool output at the start of the server: > > nspools=minthreads 400 maxthreads 500 idle 400 current 400 maxconns 150 > queued 11 timeout 60 > > nspools output showing when idle and current are at 1: > nspools=minthreads 400 maxthreads 500 idle 1 current 1 maxconns 150 queued > 56,679 timeout 60 > > Can anyone point out what i'm going wrong here. Why the new threads are not > being created in the pool? > > kind regards, > > On 9/15/07, Dossy Shiobara <[EMAIL PROTECTED]> wrote: > > > Both current and idle, when server is started their value is set from > > > > config > > > > > file. e.g. if i set min to 100 then the current and ilde has 100. But > > > at that point there's no request why does current returns 100? > > > > current indicates the current number of threads in the pool. Current > > should never drop below min and never exceed max. If current == idle, > > then all threads are idle. If idle == 0, then all current threads are > > busy servicing a request. > > -- > AOLserver - http://www.aolserver.com/ > > To Remove yourself from this list, simply send an email to > <[EMAIL PROTECTED]> with the body of "SIGNOFF AOLSERVER" in the > email message. You can leave the Subject: field of your email blank. -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to <[EMAIL PROTECTED]> with the body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: field of your email blank.
