Windows 10 is a Network Hog
To date I have done little more than updating, but since installing I have formed a low opinion of Windows 10. POS is a phrase I use often. The latest escapade is being a horrible network hog.
I run Windows 10 as a virtual machine (VM) using raw disk access on an Ubuntu 16.04 host on an isolated VLAN.
The home LAN is 1 Gbps. The local WISP connection is about 7-9 Mbps. There are no problems surfing the web unless Windows 10 is updating.
Whenever the Windows 10 system starts downloading updates pretty much every system in the home LAN is blocked from using the web. I never experienced this before with any system on the LAN, but I haven’t used Windows much the past many years. Rather remarkable that a single system can hog the entire connection.
I have the peer-to-peer Windows Update Delivery Optimization (WUDO) nonsense disabled in Windows 10.
Time to find a way to throttle the beast.
A little digging revealed several solutions. One is within Windows itself, using a group policy that has existed since the XP days. This policy is available by running
gpedit.msc and then drilling down:
Local Computer Policy Computer Configuration Administrative Templates Network Background Intelligent Transfer Service (BITS) Limit the maximum network bandwidth for BITS background transfers
The background transfer rate can be limited fully or to a specific period of the day. The built-in help explains that the limiting should be based on the network link and not the network interface. In my case that would be the WISP connection speed.
Another solution is limiting bandwidth through VirtualBox. Sadly, there is no GUI method to configure this. In my case the command line looks like this:
vboxmanage bandwidthctl "Windows 10" add Limit --type network --limit 4m vboxmanage modifyvm "Windows 10" --nicbandwidthgroup1 Limit
In this example, the traffic will be limited to 4 Mbps.
Another option is Quality of Service (QoS) at the router. As far as I can tell, because I am running Windows 10 in a VM, I don’t think the router can distinguish between the host and VM guests.
I decided to use the BITS and VirtualBox approaches. I configured the BITS to 3000 Kbps, or 3 Mbps between 8 AM and 8 PM. I configured VirtualBox to limit to 4 Mbps. As I use the system so little, I won’t know for some time if these changes help.