vmstat, iostat, top…etc are useful to check server load, I/O or memory usage.
iostat
r/s and w/s
the number of read and write requests sent to the device per second
await
the number of requests waiting in the device’s queue
svctm
the number of miliseconds spent servicing requests, from beginning to end
util
the percentage of the device utilization
vmstat
procs
r: processes are waiting for the CPU time
b: processes are in sleep (means they are waiting for I/O)
io
bi/bo: how many blocks reading in/out the device
system
in: number of interrupts per second
cs: context switches per second
Here are some good sites showing how to use them
http://www.cyberciti.biz/tips/linux-disk-performance-monitoring-howto.html
http://www.cyberciti.biz/tips/how-do-i-find-out-linux-cpu-utilization.html
http://www.linuxforums.org/articles/using-top-more-efficiently_89.html
http://software.intel.com/en-us/blogs/2011/02/09/using-linux-top-to-troubleshoot-multi-core-scalability-issues-at-dreamworks-animation/
Good article about I/O scheduler
http://www.linuxjournal.com/article/6931