Thursday, February 10, 2011

All about IOPS and Write penalty

Fibre Channel and SAS drives can handle more IOPS than SATA drives, making them a good choice for applications that generate a lot of random IO. From a MBPS standpoint SATA isn’t quite as fast as Fibre Channel and SAS but the delta is much smaller, making SATA acceptable for workloads that mainly generate sequential IO.
RAID 1+0 provides the best performance for random workloads. RAID 5 and 6 provide good performance for sequential workloads. The workload, the mix of; random, sequential, reads and writes has a major impact on performance, with writes putting the biggest load on disk drives.

IOPS calculations 
Every disk in your storage system has a maximum theoretical IOPS value that is based on a formula. Disk performance — and IOPS — is based on three key factors:
·         Rotational speed (Spindle speed): Measured in revolutions per minute (RPM), most disks you’ll consider for enterprise storage rotate at speeds of 7,200 or 15,000 RPM. A higher rotational speed is associated with a higher performing disk
·         Average latency: The time it takes for the sector of the disk being accessed to rotate into position under a read/write head.
·         Average seek time: The time (in ms) it takes for the hard drive’s read/write head to position itself over the track being read or written. There are both read and write seek times; take the average of the two values.
To calculate the IOPS range, use this formula:
 Average IOPS: Divide 1 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)

The IOPS RAID penalty
For “read” IOPS its simple, RAID Read IOPS = Sum of all Single Disk IOPS
For “write” IOPS it is slightly more complicated as there is a penalty introduced:

RAID Level           IO Penalty      Write IOPS
----------------------------------------------------------
RAID 0                   1                        175
RAID 1                   2                         85
RAID 5                   4                         40
RAID 6                   6                         30
RAID DP                2                         85

So how do we factor this penalty in? Well it’s simple for instance for RAID-5 for every single write there are 4 IO’s needed. That’s the penalty which is introduced when selecting a specific RAID type. This also means that although you think you have enough spindles in a single RAID Set you might not due to the introduced penalty and the amount of writes versus reads.

 (TOTAL IOPS × % READ)+ ((TOTAL IOPS × % WRITE) ×RAID Penalty)

So for RAID-5 and for instance a VM which produces 1000 IOPS and has 40% reads and 60% writes:

(1000 x 0.4) + ((1000 x 0.6) x 4) = 400 + 2400 = 2800 IO’s

The 1000 IOPS this VM produces actually results in 2800 IO’s on the backend of the array.

No comments:

Post a Comment