Summary for monitoring disk I/O

In general, a high % iowait indicates that the system has an application problem, a memory shortage, or an inefficient I/O subsystem configuration. For example, the application problem might be due to requesting a lot of I/O, but not doing much with the data. Understanding the I/O bottleneck and improving the efficiency of the I/O subsystem is the key in solving this bottleneck.

Disk sensitivity can come in a number of forms, with different resolutions. Some typical solutions might include:

  • Limiting number of active logical volumes and file systems placed on a particular physical disk. The idea is to balance file I/O evenly across all physical disk drives.
  • Spreading a logical volume across multiple physical disks. This is particularly useful when a number of different files are being accessed.
  • Creating multiple Journaled File Systems (JFS) logs for a volume group and assigning them to specific file systems (preferably on fast write cache devices). This is beneficial for applications that create, delete, or modify a large number of files, particularly temporary files.
  • If the iostat output indicates that your workload I/O activity is not evenly distributed among the system disk drives, and the utilization of one or more disk drives is often 70-80 percent or more, consider reorganizing file systems, such as backing up and restoring file systems to reduce fragmentation. Fragmentation causes the drive to seek excessively and can be a large portion of overall response time.
  • If large, I/O-intensive background jobs are interfering with interactive response time, you may want to activate I/O pacing.
  • If it appears that a small number of files are being read over and over again, consider whether additional real memory would allow those files to be buffered more effectively.
  • If the workload's access pattern is predominantly random, you might consider adding disks and distributing the randomly accessed files across more drives.
  • If the workload's access pattern is predominantly sequential and involves multiple disk drives, you might consider adding one or more disk adapters. It may also be appropriate to consider building a striped logical volume to accommodate large, performance-critical sequential files.
  • Using fast write cache devices.
  • Using asynchronous I/O.