We're running an ESXi 5.5u2 hypervisor that has a mirror of 2 15k SAS drives with a couple of VMs inside and we noticed some services become briefly unreachable if another VM is using all the IO.
So I'm looking into a way to avoid this trickle effect by limiting the IOPS of our VMs in vSphere so each have a slice of the drive's total. Just went to the VM settings Resource tab and set the IOPS limit. Not a difficult task (although I do wish vSphere had a Linux client), but one thing I've noticed is the IOPS limit does not come close to what the VM actually gets.
I'm using a tool called VisualEsxtop which graphs a bunch of things including IOPS. What I am graphing in particular is the CMDS/s, Reads/s, and Writes/s. To find my configuration's total IOPS, I'm running a simple stress test with dd that writes a big file and reads from a big file (both tests run side by side).
From that, I found my IOPS to be around 270. It is to my understanding that IOPS = num_reads + num_writes, but when applying that logic to the IOPS limit in vSphere I am not seeing that connection. Setting the limit to half made the IOPS fall to around 40 and setting it to 2700 gave the the 50% total I wanted.
So I am a little befuddled by this. Is it how I determined my IOPS? Cheers to anyone that can shed some light on this.