Running virtual machines (VMs) on Proxmox is a great way to maximize your hardware’s potential, especially for homelabs and self-hosted applications. However, one common issue many encounter when running Windows VMs is poor network throughput. If you’ve set up services like Jellyfin or other applications and notice sluggish network performance, this can be frustrating. In this post, we will explore some of the common causes of poor network throughput on Windows VMs in Proxmox and provide practical solutions to help resolve these issues.
Identifying the Issue
If your Windows VM’s network performance is slow, with network speeds dropping to a crawl — often below 1Mbps despite having gigabit networking on your physical setup — you’re likely experiencing a network configuration problem. Applications like Jellyfin, which require consistent and fast data transfer over the network, can suffer from such issues, causing delayed responses and a poor user experience.
Before diving into fixes, it’s essential to confirm the scope of the problem. Testing network speeds with tools like iperf or transferring files between the VM and host system are good starting points to diagnose network throughput. If the results show significantly lower speeds than expected, you’re facing a network bottleneck.
Common Causes of Poor Network Throughput in Windows VMs
1. Incorrect or Missing VirtIO Drivers
One of the most common causes of poor network performance in Windows VMs is the lack of optimized drivers. By default, Proxmox VMs might use generic drivers, which don’t take full advantage of modern networking hardware.
Solution:
Ensure that you are using VirtIO network drivers, which are specifically designed for virtualized environments and offer far better performance than the default drivers. VirtIO drivers significantly reduce CPU overhead and provide better throughput.
Steps to install VirtIO drivers:
- Download the VirtIO drivers ISO from the Proxmox website.
- Attach the ISO to your Windows VM.
- Install the necessary VirtIO network drivers through the Windows Device Manager.
- Reboot the VM to apply changes.
VirtIO drivers allow your VM to efficiently interact with the virtual network interface and leverage higher speeds.
2. Improper Network Adapter Configuration
Windows VMs require the correct configuration of virtual network interfaces to ensure optimal performance. By default, Proxmox uses the e1000 network model, which can be a bottleneck due to its limited throughput compared to more advanced models like VirtIO.
Solution:
Switch to the VirtIO network adapter if you haven’t already. The VirtIO adapter is much more efficient for virtual environments and can handle gigabit and higher speeds. In your Proxmox VM configuration file, ensure the following setting for the network interface:
net0: virtio=XX:XX:XX:XX:XX:XX,bridge=vmbr0
Also, check whether your network adapter’s settings in Windows allow it to fully utilize multiple queues. This can be done in the device properties, where enabling multiple queues can enhance throughput, especially in multi-core setups.
3. Proxmox Firewall Settings
Another potential cause for network slowdowns is restrictive firewall rules configured within Proxmox. While firewalls are essential for security, misconfigurations can severely limit the speed and throughput of network connections.
Solution:
Temporarily disable the Proxmox firewall for your VM to see if it improves network performance:
- In the Proxmox interface, go to Datacenter > Firewall.
- Disable the firewall for the VM in question.
- Test network speeds again to see if performance improves.
If disabling the firewall improves performance, review the firewall rules and ensure they are not throttling or blocking essential traffic. You can also create specific rules to allow unhindered communication for your VM.
4. CPU and RAM Overcommitment
While Proxmox allows resource overcommitment to maximize hardware usage, over-allocating CPU and RAM can hurt VM performance. If your Windows VM is starved for resources, network performance can degrade as the system struggles to process packets in a timely manner.
Solution:
Ensure that your VM is not overcommitted in terms of CPU and RAM. Review your Proxmox configuration and adjust CPU cores and RAM to match the actual workload. For instance:
- Make sure you’re not assigning more vCPUs than your host can realistically handle.
- Check that your RAM allocation (16GB in this case) is sufficient, but not excessively overcommitted across other VMs.
Additionally, you might want to enable NUMA if your host system has a non-uniform memory architecture, which can help with performance in multi-core, multi-socket environments.
5. Disk I/O Bottlenecks
Sometimes, poor network performance is not directly related to the network itself, but rather to disk I/O bottlenecks. If the VM’s disk is slow to respond to network data being written or read, it can cause network speeds to appear slower than they are.
Solution:
- Check the VM’s disk caching mode: Ensure you’re using an optimal cache mode like
writeback, which can improve disk I/O performance significantly. - Enable I/O Threads: Make sure the
iothreadsetting is enabled in your VM configuration to allow better parallel processing for disk operations. - Use SSD for Storage: If possible, store the VM disk on SSD storage rather than HDD, as this can drastically improve read and write speeds.
6. Windows-Specific Network Issues
Sometimes the problem lies within Windows itself. Windows network settings can occasionally be misconfigured, leading to slow speeds, particularly if Windows firewall settings are overly aggressive or if power-saving features are enabled on the network interface.
Solution:
- Disable Windows Firewall (for testing): Temporarily disable the Windows firewall to see if it improves throughput. You can later create specific rules to allow trusted network traffic without disabling the firewall completely.
- Adjust Power Settings: Ensure that the network interface in the Windows VM is not set to a power-saving mode. Navigate to the device properties and disable any power management options that allow the device to be turned off to save power.
7. Hypervisor Overhead
Running a Windows VM on a hypervisor like Proxmox introduces some level of overhead, which could affect network performance. The degree of this overhead depends on your hardware setup, networking drivers, and VM configuration.
Solution:
Regularly update both Proxmox and the VM drivers (like VirtIO) to ensure that any performance improvements and bug fixes are applied. Additionally, optimizing your Proxmox setup by offloading disk operations and ensuring proper resource allocation can help reduce hypervisor overhead.
Conclusion
Poor network throughput on Windows VMs in Proxmox can be caused by a variety of factors, including incorrect drivers, suboptimal network configurations, and insufficient hardware resources. By addressing these common issues — such as installing the correct VirtIO drivers, adjusting network adapter settings, and optimizing VM configurations — you can significantly improve network performance.
If you’re still experiencing slow speeds after trying the fixes above, further diagnostic tools like iperf and monitoring network traffic between your Proxmox host and VM can help identify other bottlenecks. With proper configuration, your Proxmox Windows VM should be able to take full advantage of your hardware and network capabilities.

