VMware Cloud Community
steven6282
Contributor
Contributor

Disk I/O causes large cpu load

I'm trying to figure out why any time there is disk I/O going on in a guest OS, it's causing a large cpu load in ESXi.  Shouldn't the hardware raid card be handling most of the reading / writing to disk?  I could understand some cpu usage but it's kicking up to over 3000 Mhz cpu usage for a simple 8 KB/s disk I/O operation in the guest OS.  Seems a bit much.

I've tried two different hardware raid cards to make sure it wasn't the hardware raid.  I've tried a Dell Perc 5/i and a LSI 3Ware 9650SE-4LPML.

Both resulted in the same behavior.

0 Kudos
4 Replies
mcowger
Immortal
Immortal

Sounds like there is something other than the IO causing the CPU load - where is the CPU load coming from?  Which VM?

--Matt VCDX #52 blog.cowger.us
0 Kudos
steven6282
Contributor
Contributor

Of the 4 VMs I have loaded right now for testing, I have seen the occurence happen durion disk I/O in Ubuntu Server 10.10 64bit, Windows Server 2008 64bit, and Windows 7 64bit.

I'm fairly certian it is caused by disk i/o.  I've watched resource monitors in Windows 7 / Windows 2008 for instance and CPU usage remains 1% or less.  Disk I/O is the only thing that ramps up a little.  In Ubuntu I duplicated it by simply doing dd if=/dev/zero of=1G bs=1M count=1024

0 Kudos
mcowger
Immortal
Immortal

What does esxtop say during this?  Which world is being charges for the IO?  For the CPU?

--Matt VCDX #52 blog.cowger.us
0 Kudos
steven6282
Contributor
Contributor

Did not know about the esxtop command, useful.

Windows 7 seems to be the biggest cultprit for this.  When it happens it shows a 100 to 120% cpu load on the Windows 7 vm.  But in the Windows 7  guest the peformance manager shows 1% to 2% cpu usage (I've got it set to two cores in this setup).  The 100 to 120% accounts for the 3000 Mhz + cpu load, but I don't understand why esxtop would show that much usage and when Windows 7 performance manager doesn't think it's using it.  Unless ESXi is running a background thread on the VM process but outside of the guest OS.

0 Kudos