[Catalyst] DProf
Carl Johnstone
catalyst at fadetoblack.me.uk
Mon Nov 5 12:20:43 GMT 2007
It's probably useful to tell you what these various commands are actually
doing, rather than just saying check-this and check-that...
lsof = LiSt Open Files
basically it lists every file that a process has open, that includes the
executable file itself and any libraries or shared code. The best way to use
it is with a process ID:
lsof -p 1234
Pick a process ID for one of the "stuck" httpd processes. It's use would be
looking to see if your app is reading files it shouldn't need to, or maybe
reading lots and lots of files.
strace = System TRACE
It'll allow you to attach to a process and show every system call the
program makes. System calls are things like opening/reading/writing/closing
files/network connections. Again you should run it on one of your stuck
processes that's using lots of CPU and isn't finishing.
Finally, you've found top, but I find that when you've got a server that's
overloaded, frequently "vmstat" provides more interesting information.
vmstat 5
Will give you a snapshot of what's happening on your system every 5 seconds.
The columns are described on the man page, however it'll give you a better
breakdown of what's happening across the system as a whole (although not
what processes are causing that activity)
Carl
More information about the Catalyst
mailing list