Friday, June 22, 2012

Disk I/O monitoring on linux (iostat/sar)

# iostat -dkx 30
On every Linux box the following should be graphed at 5 minute averages
  • %util: When this figure is consistently approaching above 80% you will need to take any of the following actions -
    • increasing RAM so dependence on disk reduces
    • increasing RAID controller cache so disk dependence decreases
    • increasing number of disks so disk throughput increases (more spindles working parallely)
    • horizontal partitioning
  • (await-svctim)/await*100: The percentage of time that IO operations spent waiting in queue in comparison to actually being serviced. If this figure goes above 50% then each IO request is spending more time waiting in queue than being processed. If this ratio skews heavily upwards (in the >75% range) you know that your disk subsystem is not being able to keep up with the IO requests and most IO requests are spending a lot of time waiting in queue. In this scenario you will again need to take any of the actions above
  • %iowait: This number shows the % of time the CPU is wasting in waiting for IO. A part of this number can result from network IO, which can be avoided by using an Async IO library.

1 comment:

  1. Speed test with hdparm (get/set ATA/SATA drive parameters under Linux)
    # hdparm -Tt /dev/sda

    Disk I/O test
    # dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync