Andrew,
It might be a bug, and I just discovered another one related to this.
If -timeout is set to zero or less, the value is still used, but it should
probably be set to null, meaning infinite timeout:
403 if (poolPtr->threads.current <= poolPtr->threads.min) {
404 timePtr = NULL;
405 } else {
For one, I've moved this check inside the following while loop so it gets a
chance to change on each cycle, but I also made these modifications:
. if (poolPtr->threads.timeout <= 0
. || poolPtr->threads.current -1 <= poolPtr->threads.min) {
. timePtr = NULL;
. } else {
The behavior I see with apache bench is that after a bunch of requests are
finished, most of the threads exit, if there is a timeout. However, this may
be a result of the fact that apache bench sends extra requests and then
disconnects them. The problem is that each thread calculates for itself what
to do, and there is no way for them to know what other threads are going to
do within the next cycle.
I've started looking at JMeter, because apache bench doesn't really do what
you ask it to do, but maybe that is good. You discover things you weren't
testing for. For one, even with concurrency set at some number, fast requests
will lead apache bench to send another request before cleanup is complete on
AOLserver. AOLserver thinks the concurrency is higher than ab, up to double
the concurrency. I know this because I'm testing a boost factor for
minthreads. On large requests, threads.current never reaches the concurrency
level of ab, but on small requests, it can exceed it, up to maxthreads-2.
With my latest changes to my setup, the threadpool moderates to something
else: with high concurrency, the idle threads value tends to zero. If
concurrency is less than maxthreads, the queued requests tends to zero.
Eventually, if concurrency is less than maxthreads, both of these values tend
to zero, they bounce around a low number and zero, so all threads are busy
and the queue is empty. Otherwise the trend appears to be
current+queued=concurrency and idle=0.
tom jackson
On Monday 22 October 2007 07:48, Andrew Piskorski wrote:
> On Mon, Oct 22, 2007 at 06:30:40AM -0700, Tom Jackson wrote:
> > My only point here was that I'm going to stop looking at the timeout
> > parameter, and timed out threads as an issue. If threads timeout, the
> > number of threads in a threadpool will drop below minthreads, usually to
> > zero.
>
> But isn't that a bug? If not, just what is "minthreads" supposed to
> really mean?
--
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.