In this article, I provide some information on storage disks which go into calculations that will help you figure out how much Input/output Operations Per Second (IOPS) your disk subsystem can deliver.
To effectively size & tune up applications like exchange databases, SQL, Oracle, Hyper V, VMware and all other disk intensive applications, the IOPS for the underlying disks have to be calculated prior to load data.
There are tools available to identify how much IOPS the application will generate
Exchange 2010 Disk Sizing
Microsoft Assessment and Planning Toolkit
The applications will talk about frontend IOPS. Now you need to see what is the difference between frontend IOPS and backend IOPS.
is the total number of read and write operations per second generated by an application or applications. These read and write operations are communicated to the disk(s) presented to the application or applications.
is the total number of read and write operations per second that a RAID/storage controller sends to the physical disks. The value of the backend IOPS is higher most of the time, because of the simple reason that a certain RAID level has a certain overhead. This overhead is called the write penalty.
What are three key factors that need to consider when we calculate IOPS?
This is the speed of disk spindle which is calculated in Rotations Per Minute (RPM). Most disks we see today in the industry for enterprise storage rotate at speeds of 7,200 or 15,000 RPM.
The time it takes for the desired data (which is in the sector of the disk) being accessed to rotate into position under a read/write head.
Average seek time:
The time (in milliseconds) it takes for the hard drive’s head assembly on the actuator arm to travel to the track of the disk where the data will be read or written. There are both read and write seek times; take the average of the two values. measures the time it takes the
The above specifications can be obtained from the OEM
= seek time + latency
To calculate the IOPS range, use this formula:
Average IOPS: 1 divided by the sum of the average latency in ms and the average seek time in ms (1 / (average latency in ms + average seek time in ms)
As an example, see below the IOPS calculation for a sample disk with the following specification
Rotational speed: 7200 RPM
Average latency: 4.2 ms (0.0042 seconds)
Average seek time: 8.2 (read)/8.9 (write) = 8.55 ms (0.0085 seconds)
Calculated IOPS for this disk: 1/(0.0042 + 0.0085) = about 79 IOPS
Reference for the calculation you can see in the below website
Enterprises don’t install a single disk at a time, so the above calculations cannot apply unless they can be turned to multidisk sets or RAID. A sample IOPS calculator is mentioned below to count IO for different RAID combinations. This tool is of much use to determine in the back end how much spindles are needed for a given IOPS.
You need to know more about your application workload (reads / writes), the recommended RAID levels to understand what IOPS your application needs.
Once you sized and implemented your LUNS based on the requirement you can use tools, such as IOmeter
, to get specific, real-time performance values