Shoddy performance on VMs

Associate
Joined
28 Oct 2002
Posts
1,819
Location
SE London
Heya, I've been scratching my head for a while with this - my VM's performance in my lab are appalling.

My setup is 2 nodes going via multi-channel SMB3 over a unmanaged HP GbE switch to my storage server, which is 4x2Tb's in a RAID5, which has enough performance to server up the two Hyper-V nodes with ease, and a copy of a 4Gb MKV goes at ~170-180MB\s. But the VM's are really laggy. Takes ~1m to open server manager, running installers takes ages... Overall, really sluggish.

As you can see from below my array isn't to blame,

qxdq3hZ.png


I was thinking of moving over to iSCSI w/ CSV cache, as I'm not sure if it's because of MC SMB3 that it's sluggish... I also am going to borrow a managed switch with LACP and bond them too.

But I was wondering if anyone else could give me some clues as to why the performance is so shoddy, and also any ideas as to improving performance as a whole...
 
Hyper-V, as I'm quite adept at vSphere and wanted to mess about with HV... Which without the full SC suite, I think that the reporting on disk latency is rather non-existence.

But CPU\RAM are fine, CPU avg 5%, 10/12Gb free on each node.
 
Are you genuinely surprised that random IO on a RAID5 array of SATA over SMB is cack?

Your own numbers show how poor your array is.

LACP isn't a solution either btw. You don't get more than one link-worth of bandwidth per flow.
 
Last edited:
When it comes to Hyper-V, Windows is very strict about ensuring that everything in the chain has write-caching disabled (to limit the risk of corruption), so if you don't have hardware caching (like a RAID controller with a battery-backed cache), you will get really poor write performance. Try a Crystal Disk Mark from one of the VMs and compare it with the one from your array.
 
Are you genuinely surprised that random IO on a RAID5 array of SATA over SMB is cack?

Your own numbers show how poor your array is.

LACP isn't a solution either btw. You don't get more than one link-worth of bandwidth per flow.

He has a point if you're using 1gbit/s network links - the network is only as fast as it's slowest point or link. You would need to apply LACP to / from the nodes, server to any real improvement. Again it depends on setup, what the hardware is capable of.

Are you using jumbo frames at all? Is the unmanaged switch capable of using jumbo frames? Might be worth looking at it, but don't expect miracles.

1GBe = 125MB/sec Theoretical maximum, minus overhead you're looking at a realistic 95MB/sec to 110MB/sec~. OS layer added to the mix you're getting around 75-90MB/sec~. Virtualisation is not as fast as real hardware in the IO field on Windows, Hyper V loves disabling cache to ensure no corruption or loss of data.

Mixing LACP and jumbo frames on smaller setups like yours does more often than not, provide real improvement. I'ld check if Hyper-V has disabled read/write cache too just be sure.

2p
 
One source to one destination on his network means 1GbE maximum end to end, no matter if that is a single 1GbE link or 50.

There are ways around that, LACP isn't one of them.
 
Back
Top Bottom