2

How should I measure IOPS generated by a single Virtual Machine in VMWare ESX?

Also what would be a normal amount of IOPS for a Windows XP virtual machine?

SimonJGreen
  • 3,205
  • 5
  • 33
  • 55
d_pilot
  • 323
  • 1
  • 5
  • 12

3 Answers3

2

While you surely can use OS-specific tools to measure the IOPS rate within a virtual machine, you may fall victim to the various timing problems present in VMs so you would get inaccurate results. Thus, I would suggest using the "disk VM" view of esxtop/resxtop on your hypervisor to get real-time figures or esxplot / vscsiStats for collection and histogram functionality of the same in more detail.

the-wabbit
  • 40,737
  • 13
  • 111
  • 174
1

A few options spring to mind with VMWare.

  1. From the CLI run esxtop and press d to switch to disk mode. The field CMD/s shows you current IOPS.
  2. From the vSphere GUI go the machine in question and then performance tab, you can switch that to disk or datastore mode and view current activity there. You can also look at this view on a per datastore level and per host as well as per VM.
  3. If you're feeling really adventurous this can also be done with PowerCLI to drill down a little more: http://communities.vmware.com/docs/DOC-13523
  4. Download the free version of VMTurbo, install it on your vCenter server, and allow it to analyse your VMWare environment.
  5. Finally, SANs often have a way of telling this form their own GUIs.

For the second half of your question, the number of IOPS generated by a particular VM is entirely dependant on the role and workload of the VM. There is no way to say what a normal level of IOPS should look like.

SimonJGreen
  • 3,205
  • 5
  • 33
  • 55
  • 1
    One serious problem VMWare can cause is extra IO due to badly aligned master boot records on VMs. If you're trying to see this, it'll take a combination of multiple tools. – Basil Mar 12 '12 at 12:24
0

Install something like HDTune on the VM and measure performance.

Robin Gill
  • 2,513
  • 14
  • 13