"John" == John Lange john.lange@open-it.ca writes:
John> Does anyone have any suggestions for accurate monitoring of John> system load on web servers?
John> In the situation where you have a server which is hosting John> multiple applications I've found it next to impossible to John> determine with any accuracy what applications or pages John> within those applications are causing load.
John> At any given moment its easy to see what is using CPU and John> memory. But in the case of a web server these are brief John> spikes that don't mean anything. Whats needed is a way to John> see what has caused the most load over a given time period John> (say the last 10 minutes).
John> Does anyone have any suggestions for tools that can help John> determine load.
Hey John,
There are a couple of things which you can do to figure out what is going on. I tend to use a couple of additional Apache log directives to get more info for each request. Adding "%O %I %D" gets you bytes out, in (say, for big posts) and the request duration in microseconds. This gives you enough to run an analysis script, or just use the Mark I Eyeball when things have been acting up. It might also be useful to log the query string as well, but be careful if you have apps which pass things like passwords in query parameters; you don't want those floating around in your logs.
If possible, benchmarking your app or overall site is a helpful exercise, especially if the tool used allows you to simulate multiple user sessions. LoadRunner is a commercial (and pricy) tool to do this, but OpenSTA looks like a reasonable, free alternative. Running a bunch of concurrent users will help find areas which work OK in development, but which don't scale well.
Cheers, Tim