[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)


More information about the Catalyst mailing list