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
andkB_wrtn/sec
which together add to total - For latency, use
-x
instead of -d and look at theawait
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.