Windows – Horrible IO speed in Hyper V machine compared to host

hardware-raidhyper-vnetwork-sharewindowswindows-server-2016

I have HP G6 Hyper V host with 6 cores, 24 gb ram, and a p410i raid controller (with 512mb ram and backup battery) running windows 2016 (updated today).

When copying data from a SSD (not in raid array) to another P410i Raid 1 managed drive in the hyper v (drive is called S:) host I am getting around 120Mb/sec, which is as expected considering it's two WD green drives and a little older raid card.

The only thing that is on the S: disk is a hyper V hard drive used by a virtual machine called "Share". That harddrive is mounted as the second drive on that virtual machine (ie no OS installation). The machine (Share) has one folder on the disk called \Storage.

The \Storage\ folder is shared to the network.

When copying or reading to this folder over the network I am getting a max speed of ~10Mb/Sec (Gigabit Ubiquity network). When moving files internally on the Virtual Machine to this drive I am getting around ~10Mb/Sec. If I share the S: drive directly from the host I am reading or writing at around ~100 Mb/Sec.

Whats wrong and what can I do?

Best Answer

I would recommend you to start with checking the network adapter speed inside the VM.

enter image description here

This may sound odd but sometimes a network adapter inside the VM may auto-negotiate it's own bandwidth at 100 MBit despite of actually having 1 or 10 GBit as backbone. If that's the case you can change this setting manually in adapter's advanced settings.