On Fri, 2005-12-16 at 12:02 -0600, Tim Lavoie wrote:
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.
There is a tool called apache-top which tails the log files and gives you something similar to top. However, this is far from the ideal solution when you have a web server with 100 sites on it, each with its own log file.
It also doesn't tell you anything if the load is in a mySQL query. The web server process can be idle but waiting for a mySQL query.
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.
BTW, A great load testing tool is:
http://jakarta.apache.org/jmeter/
But load testing isn't what I need. I don't care how much load the applications cause when stressed, what I need to know is which applications are are using the most resources in real-life.
By way of a better example let me give more detail.
Lets say you have a server with 100 clients on it. Some of them busy, some of them not.
One site may have a very load intensive application on it but that only gets 1 hit every 10 minutes.
Another site could be getting 1 hit per second but the application is very light.
The only thing you can tell is that the server is under load. There is next to no way to determine who is responsible. Just because a site is getting more traffic doesn't make it load intensive and vs. versa.
What you need is a tool like top but that keeps history and then shows average load over some given time span.
Regards,