I have a high-end desktop PC.
- MB: Intel DX79TO
- CPU: Intel i7-3820 @ 3.6GHz
- RAM: Quad Channel Kingston Hyper-X DDR3 16GB @ 2400 MHz
- SSD: Kingston Hiper-X 120GB (Host OS resides here)
- RAID5: 4 x 1TB - Windows Software RAID
- Host OS: Windows Server 2016 (full)
The only server role enabled is Hyper-V. Actually the "File Server" is also enabled.
In the host OS, the transfer rate between the SSD and the RAID5 drive is 500 to 1100 MB/s depending on the direction. However, the speed inside the guest OS is mind-boggling: under 20 MB/s. Moreover, even when I don't transfer files, the disk utilization in Task Manager holds on 100%. The guest OS is Windows 10 and it is very unresponsive.
As a test, I moved the VHDX file away from the RAID5 drive onto the SSD and everything flew up; the performance of the guest OS became normal. When moved the VHDX back to the RAID5 drive, the performance in guest got back to degraded again.
The VHDX is of type fixed, of course, and the VM is Generation 2, has 2 virtual processors and 2 GB RAM. All of the integration services are installed.
So what can I do to fix the performance of the guest OS while having the VHDX on the RAID5 drive?
I am fighting this issue 3 days now and read tons of articles about how to optimize Hyper-V but nothing seems helpful. Tried so far:
- Defragmenting the RAID5 drive. Initially, there was 35% fragmentation. After de-fragmentation, there was no observable difference.
- Added exclusions in the host OS's Windows Defender
vmwp.exeprocesses, as well as the folders, containing Hyper-V VMs and their VHDX files, are excluded.
- Completely disabled paging in the guest OS.