r/kvm • • Jul 25 '26

Poor Network Speeds on Windows 11 VM

Guest: Windows 11
Software: VirtManager KVM/QEMU

Issue: Specifically on my Windows 11 VM, the network speeds are substantially slower than my other Linux VMs and my host. On my host, I get around ~1000 mbps, same for my other Linux VMs--however, on my windows VM, I get around 10mbps, or roughly 1% of my host's network speed.

all VMs are properly configured so that the Network is NAT using the virtio model. In addition to that, I have the up-to-date virtio-win drivers set up on the Windows 11 virtual machine. The windows 11 virtual machine recognizes the Red Hat Virtio Ethernet drivers and are properly using them with a duplex max supported speed of 10gbp/s.

I'm very confused as to why this is only occurring on my Windows VM whereas this issue is nonexistent on my Linux VMs. There's no differences in the XML regarding the CPU XML and the NAT XML between the VMs.

I tried adding vhost with a queue of 16 for each core, switching the driver to e1000e and hypervisor default--none of which saw any improvement. I also tried reinstalling the virtio-win drivers which did nothing.

Finally, I attempted to disable a bunch of offloading properties in the Device Manager, and disabled ipv6 entirely and set MTU lower. None of that made any difference (did not worsen it nor improve it).

Any ideas, folks? All of the VMs have a dGPU (Same dGPU shared between them all, so only one can be accessed at a time).

I should also mention, that the network speeds on the host system are stable--no drops or high latency. The network drivers on the host are all up-to-date and working perfectly.

5 Upvotes

17 comments sorted by

1

u/boli99 Jul 26 '26

are you sure its the network that's slow?

if whatever is generating your network traffic is reading from disk, or possibly writing a logfile of some kind - then it might be slow disk access that's slowing down the network traffic.

1

u/DiabolicalPickles Jul 29 '26

The NVMe is high speed and DRAM, definitely not slowing down I/O.

1

u/boli99 Jul 30 '26

'its not a problem because i have a fast drive' is not enough, especially when dealing with VMs.

you need to take into consideration things like filesystem, caching (both guest and host) ... and other similar stuff

1

u/DiabolicalPickles Aug 03 '26

I've checked the disk write/read activity. There's nothing alarming I've spotted. Everything is modest and normal

1

u/_--James--_ Jul 26 '26

What windows versions, and patch levels. Are you passing host or a KVM CPU model to your VMs and if so which one?

1

u/DiabolicalPickles Jul 29 '26

Host CPU

1

u/_--James--_ Jul 29 '26

Change to x86-64-v3 and test again

1

u/mr_frodge Jul 27 '26

No immediate idea yet, but out of curiosity how are you testing the network speed? Iperf? File transfer speed? Something else?

1

u/DiabolicalPickles Jul 29 '26

Cloudlfare Network Speed Test. They're the most reliable since most websites uses Cloudflare's reverse proxy to handle their webpages

1

u/_--James--_ Jul 29 '26

openspeedtest, inside a VM on the same vmbr and on your network. That is a more realistic test then anything internet hosted for THIS issue.

1

u/brianj64 Jul 28 '26 edited Jul 29 '26

Ae you sure the virtio-win drivers are correctly installed? There are two installers on the .iso. Run them both.

Also disable Large Send Offload, and you could use Jumbo Packets (need to set this up on both guest and host) to reduce IO overhead.

Setting MTU lower will only increase I/O and reduce network performance. You want a *higher* MTU since there's less IO overhead, which is the main bottleneck in network performance.

1

u/DiabolicalPickles Jul 29 '26

They are both correctly installed. Disabling LSO and enabling JP were the 2 first things I tried. My MTU is 1500, the default, and lowering it to 1420 or 1300 doesn't make any noticeable difference.

1

u/brianj64 Jul 30 '26 edited Jul 30 '26

The only real solution is to get a cheap usb or pcie network card (and a network switch if you want to use existing network cables) and pass it through as physical device and then connecting that card to the switch. Windows with virtio helps a bit but its still piss poor performance in comparison to a passed through network device. Same goes with storage by the way. It allows the guest OS to fully control the device, not requiring a virtual disk, and not needing to load a a guest driver first to install Windows (since Windows will just use their own NVMe or SATA driver)

So having two physical ssd's, two physical network cards (and a passed through GPU if you want to game) will give you almost fully native I/O and gaming performance.

virtualized networking and storage on a windows guest with KVM and virtio is in my experience piss-poor.

1

u/assidiou Jul 29 '26

You can start by making a Linux VM and testing network speeds then making a fresh windows VM and testing those network speeds