How do you determine that the performance of your Linux server is I/O bound and, perhaps more importantly, what process or processes are casuing the problem?
I wrote a comprehensive guide to tracking down performance bottlenecks on Linux systems for work: http://web.archive.org/web/20101028025942/https://anchor.com.au/hosting/development/HuntingThePerformanceWumpus . Covers more than you asked for, but it'll (hopefully) help you track down the problem you're seeing regardless of the actual source.
Top has a field called "iowait". If your system is seeing a lot of that, you know something's up. There's also iotop!
Package: iotop: Description: simple top-like I/O monitor iotop does for I/O usage what top(1) does for CPU usage. It watches I/O usage information output by the Linux kernel (requires 2.6.20 or later) and displays a table of current I/O usage by processes on the system. Handy for answering the question "Why is my disk churning so much?". Homepage: http://guichaz.free.fr/iotop/
IoTop is probably what you're looking for.
We can find bottleneck in linux server performance using following method..
- Take the output of TOP & mem, vmstat commands in one notepad.
- Take sar output of 3 months.
- check the variation in processes & usage at the time of implementation or change.
- If the load is unusual since the change. check for reverting change.
- Alternatively one can also check for system & application logs too.
The above thing will definitely tell us bottleneck..
I/O bottlenecks can be found using some linux basic commands..And also investigating and comparing their outputs. Read: Understanding Linux IO