Carl Olivier wrote, On 4/6/2004 10:30 AM:

Could the problem be that too many high processor-requirement threads are being started, and as such each gets less time on the processor - thus taking longer to process......and thus, should we not set the AJP worker maxThreads DOWN thus allowing the processor to finish each processor intensive task quicker? Maybe set the acceptCount up.....hmmm - thoughts?

I think you've found the problem. If you have a page which takes 10s to process (and you say that it's CPU bound, not IO bound), once you have as many threads running as you have CPUs on your server, that 10s is goint to start taking a longer. You said your server was a single CPU machine, so if you're running 2 concurrent threads, now it will take 20s per request to process.


There isn't much you can do. You need to limit the number of concurrent requests so that at maximum load, your slow page takes a reasonable time to complete. Once you hit that limit you either need to start queueing requests or rejecting them. If you don't, the server will just bog further and further down. Once you get more than 10 or so CPU hogging threads going at a time, performance will really start to degrade and requests will take longer than 10x to complete than usual due to context switching overhead.

You can limit the number of concurrent requests at the connector level and then you might want increase the accept count as you suggested.

The next thing you'll want to do is figure out how to turn those 10s page requests into 1s or less. ;-)

-Dave

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to