http://blog.synology.com/blog/?p=2225 Executive Summary
This article, intended towards IT Professionals, is a follow up towards my previous article, How to measure IOPS for Windows will be covering how to measure IOPS consumption of Guest VMs from VMware which is commonly asked when using our Synology products. This information can be used to aid in diagnostics of the storage performance on the VMware Hypervisor, or can be used to determine storage performance capacity of the storage array or a new deployment of a storage array. Using this process does require familiarity with determining IOPS from Windows. This article contains a proof-of-concept method of gathering data from a VMware Hypervisor to determine the IOPS consumption of the Guest VMs hosted by the Hypervisor. Problem: IT Professionals needs to determine the amount of IOPS on Guest VMs in VMware
Just as there were questions on how to identify IOPS consumption on Windows, there are plenty of requests made to me to help determine and analyze the IOPS consumption of guest VMs within VMware. This was originally covered in the IOPS – Performance Capacity Planning Explained article; however, there was no method of recording and analyzing the data. The procedure below provides the full details on how to record IOPS data from VMware, and then using techniques from the measuring IOPS from Windowsarticle, will illustrate how to analyze the data from guest VMs. Procedure – Collecting data for IOPS measurement
Have the Guest VMs operating
Run this command in the esxcli
For complete background information about this command, please refer to VMware KB 1006797
“–a” Record all parameters, this is useful for future reference
“–d” Delay Time between samplings, shortest delay is two seconds
“–n 43300″ Number of iterations
“|gzip -9c>” gzip the output datafile
“outputFileName.csv.gz” is the file name
After the data collection is completed, move the file to “/vmfs/volumes/datastore1″
Use the vSphere Client to download the file from the datastore to a Windows Desktop
Use perfmon to iosolate the data to the specific Guest VM that requires analysis
For further background information about using perfmon to isolate data, please refer to Microsoft TechNet Article
Open perfmon from a Windows Computer
Remove all the current counters
Right click on the white field, and click Properties
Click on the Source Tab
Select the decompressed csv file
Click Apply
Observe the date range become active
Adjust the date range if it is needed
Click Ok
Right Click, and click Add Counters
Add the counters
For Background Information about the VMware Counters, please refer to Interpreting esxtop Statistics article
\Physical CPU\
% Util Time\Total
\Memory\Free MBytes
Virtual Disk
\Avg ms/Read
\Avg ms/write
Cmds/sec
MB Read/Sec
MB Write/Sec
Reads/Sec
Writes/Sec
VMs Mount Points. iSCSI or NFS is displayed here. The data isolation can be set to a specific Guest VM, or a specific storage entity.
Right Click on the white field, and click Save Data As
Save the data as a CSV
Open the isolated data file in Excel and begin sorting columns of data for easier analysis.
The following values were calculated
Write/Read IOP Cluster
Average IOP Cluster
Concurrent Throughput
Generate the graphs as before with the Windows IOPS Collection procedure
Description of Counters
\Physical CPU\% Util time\Total
Total CPU Utilization
\Memory\FreeMBytes
Amount of Free Memory on the Hypervisor
VirtualDisk
\Avgms/Read
Average latency time in milliseconds for each read IOP
\Avgms/Write
Average latency time in milliseconds for each write IOP
Cmds/sec
Number of IOPS
MBRead/Sec
Megabytes Read Per Second
MBWrite/Sec
Megabytes Written Per Second
Reads/Sec
Number of Read IOPS
Writes/Sec
Number of Write IOPS
Procedure – Processing the data
In my example, I used a VMware ESXi 4.1 Host to gather the data for about two hours for a proof-of-concept. I did test the commands against a new deployment of ESXi 5.1 – and it produced the same results, with respects of collecting data. The data that I collected isn’t accurate as it was Win7 install procedure, mostly peak behavior, and not production use data. The ESXi 4.1 machine I was using is part of my lab use – which is in semi-production use on a day-by-day basis, and is not part of a permanent VDI solution.
To download an example of this VMware IOPS data, please download the measuring VMware IOPS sample file.. The file is about 2MB in size when decompressed. Procedure – Analyzing the data
VMware Guest IOPS over time
Comprised of Write/Read IOPS over time with percentile analysis based on the highest values out of read, write or concurrent of the individual Guest VM.
This data, for the Guest VM (or storage entity) will provide the basis of analysis for determining the IOPS consumption of the array.
VMware Guest IOP Block Size over time
Comprised of Write/Read IOP Block Size over time, displayed in KB.
This data will show the average IOP block size that is experienced by the storage array. This data can help gauge what kind of storage array performance is needed.
VMware Guest Throughput over time
Comprised of Write/Read Bytes/Sec over time, displayed in MB/Sec. This data will determine the basic infrastructure needed to support the storage array.
Vmware Guest Latency over time
Comprised of Write/Read Latency over time, displayed in milliseconds.
This data can be used to identify any latency errors.
VMware Host CPU Utilization over Time
This graph is used in conjunction with all other graphs in scale, to determine the processor utilization with respect to other aspects of the storage array.
VMware Host Memory Utilization over time
This graph is used in conjunction with all other graphs in scale, to determine the memory utilization with respect to other aspects of the storage array.
Summary Analysis
Considering that this is a proof-of-concept test – the data being generated isn’t 100% accurate. However, if I had to make a decision of what kind of storage array that is needed to support a VM that is utilizing around 700 IOPS at the 95th percentile, I would strongly consider using a Synology XS+ Series RackStation for my storage.
Summary
With this procedure IT Professionals are able to collect the IOPS data being consumed from the Guest VM itself. This information is useful for determining the current storage performance utilization of the current array, or can be used to aid in the deployment of a new storage array, such as a Synology XS+ Series RackStation. References
Synology Blog – How to measure IOPS for Windows
Synology Blog – IOPS: Performance Capacity Planning Explained
VMware KB – 1006797 – Using performance collection tools to gather data for fault analysis
Microsoft TechNet – Open Log Files in Performance Monitor