Benchmark Disk Performance

Before making changes to improve performance, you first should get a baseline benchmark measurement.  Particularly with database servers and virtualization, disk speed can make the difference between a user’s perspective of instantaneous and painfully slow.

The key measurements are IOPS (in/out per second) and latency.

IOPS guidelines:

  • below 1,000 is not production speed, typically a single disk non-RAID
  • 1,000 noticeably slow, found on a small RAID-5 array
  • 5,000 good speed, usually not a bottleneck for performance
  • 20,000 and above are incredibly fast, what you find with SSD

Latency guidelines:

  • under 10 ms is optimum, not a bottleneck
  • 10-20 ms is not great, only noticeable for large datasets
  • 20-30 ms is noticeable as ‘sluggish’
  • above 30 is unacceptable, meaning corrective action should be taken

For Linux it’s iostat which is part of the sysstat package.
Usage:
iostat -d <disk name>

  • “sda” is an example of the <disk name> or leave it blank to show all disks
  • For IOPS, use -d as shown above and look at the kB_read/sec and kB_wrtn/sec which together add to total
  • For latency, use -x instead of -d and look at the await column output
  • To get numbers under load, put a number at the end which refreshes the view every x seconds

For Windows it’s Diskspd.

Leave a Reply

Your email address will not be published. Required fields are marked *