• Analyze I/O workloads to determine storage performance requirements
Latency (also called response time) describes the time taken to complete a single I/O (input output) operation and is essentially a measure of how fast a storage system responds to read and write requests.
Throughput – The capability of a storage system to transfer a fixed amount of data in a measured time is known as throughput, or bandwidth. Typically, throughput is measured in megabytes per second (MBps) or similar units.
IOPS (input output operations per second) – IOPS is a measure of the number of individual read/write requests a storage system can service per second. This figure is closely related but subtly different to throughput.
The relationship between latency, throughput and IOPS
Latency, IOPS and throughput are all closely-related. A storage system that can deliver I/O at very low latency will be able to deliver a high IOPS performance. At the most basic level, the number of IOPS achievable is simply 1/latency, so a latency of 3 milliseconds (or 1/0.003) translates to around 333 IOPS.
Putting it all together
Due to the random nature of virtual environments, latency is a key metric in monitoring the status of physical storage resources. Latency is relevant, whether a system contains one or one hundred VMs.
When we look at the capacity to support many VMs, throughput plays a big role, because the ability to scale a virtual environment requires corresponding capability in throughput. As already discussed, managing peak demand can be an issue for VDI environments which have peak read and write load periods.
From the perspective of the host, IOPS is typically used as the standard measure, because this provides an abstracted view that isn’t dependent on the underlying hardware capabilities. This is seen as a measure in both private and cloud virtual infrastructures.
Before we dig right into this section, let’s quickly review some related stuffs:
|Drive Rotation Speed||Type||IOPS|
|15K RPM SAS||HDD||~170 – 200|
|10K RPM SAS||HDD||~140|
|10K RPM SATA||HDD||~120 – 150|
|7.2K RPM||HDD||~75 – 100|
Considering the tables above, let’s calculate how many drives we need in a RAID group to meet a total workload IOPS of 400 with 30% read and 70% write.
Total IOPS required from a RAID = (total workload IOPS x %read) + (total workload IOPS x %write x write penalty)
|RAID Type||Total Required IOPS Calculation||Number of HDD Required to Meet IOPS|
|1||(400 x 0.30) + (400 x 0.70 x 2) = 680||4x 15K HDD5x 10K HDD
7x 7.5K HDD
|5||(400 x 0.30) + (400 x 0.70 x 4) = 1,240||8x 15K HDD9x 10K HDD
13x 7.5K HDD
Now, here are some tools we can use to analyze the I/O workload of our VI:
Find the world ID for the VM you want to collect statistics on
Virtual Machine worldGroupID: 40503682
Virtual SCSI Disk handleID: 10677
vscsiStats -s -w 40503682 -I 10677
vscsiStats -p latency -w 40503682 -I 10677
Stop the collection for a specific VM:
vscsiStats -x -w 40503682 -I 10677
Or for all running collections: