Fellow Linux afficionados,
I am working on a research project involving the Linux kernel and Apache.
Recently, I became puzzled by the overload behavior of Apache under
cetrain conditions. The processing in web servers is inherently
kernel-heavy, so there is no doubt in my mind that the Linux kernel is in
most part reponsible for this behavior.
However, I need to understand the underlying causes for this behavior. I
have a few hypotheses myself, but I seek your opinion on the matter and
hope to verify these hypotheses. Please help me to understand what
happens in the kernel to cause such behavior.
Setup: Pentium2 400, 128 MBs RAM, 100 MBps Ethernet,
Linux 2.2.5, Apache 1.3.12
800 clients accessing the same 2 MB file
simultaneously and continuously (in a closed-loop model)
[ so the file is likely cached in its entirety in the filesystem
cache ]
Maximums and minimums for number of concurrent server processes
servicing requests is also 800 (so that no forking is required
and transient state is achieved faster).
Behavior: At the beginning of the test, Apache quickly consumes most of
the RAM and thrashing is evident (as expected). CPU utilization
grows to 100% procent and stays there (also as expected).
But then, the thrashing stops and the network traffic (as seen
from the LEDs on the router) either stops or becomes negligible.
All the while, the CPU utilization stays at 100%. After about a
minute of this behavior, the CPU utilization drops to 0%.
After that, no clients are able to connect to the web server, and
the web server does not repond to pings.
Thank you for your help.
Stan Rost
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Sat Oct 07 2000 - 21:00:19 EST