tl;dr Yes you can do a rough and ready calculation but benchmarking is advisable if you need accuracy. There are many factors beyond raw disk performance that can influence IOPs, in particular the RAID controller.
If you have the technical specifications for the disk, the quick calculation to determine IOPs is: 1 / (average latency + average seek time) = random IOPs.
The contributory factors:
- Average latency is the time taken for the disk sector requested to rotate under the drive head.
- Average seek time is how long it takes the drive head to locate itself over the disk track requested.
- Rotational speed (quoted in revolutions per minute) isn't used directly in the calculation but affects the above. It is also the headline figure quoted in any drive specification.
While there is variation across drive models, you can apply a rough and ready figure to each of the common rotational speeds.
- 7200 RPM ~75 IOPs
- 10K RPM ~125 IOPs
- 15K RPM ~175 IOPs
With the majority of enterprise class RAID controllers, your read performance for common RAID levels (1/10/5/6) will broadly be in line with IOPs * number of disks. Cheaper controllers may impose a penalty. Write performance however is significantly effected by the chosen level:
- RAID 1 & 10 = IOPs / 2
- RAID 5 = IOPs / 4
- RAID 6 = IOPs / 6
For example, a RAID 10 array of 10 15k disks equates to:
- (175 * 10) = 1750 IOPs read
- (175 * 10) / 2 = 875 IOPs write
Of course, most workloads are a mix of read and write so its necessary to consider the r/w ratio to determine the capacity needed.