If you noticed an Internet speed drop after upgrading to the latest version of Windows 10, the following troubleshooting guide may help resolve it.
It may be particularly useful if the Internet speed was fine on previous versions of Windows, and is no longer after the upgrade to Windows 10 Anniversary Update edition.
Microsoft introduced a feature called Window Auto-Tuning back in Windows Vista, and has made it part of any newer version of Windows as well.
Set to on by default, it is designed to improve performance for programs that receive TCP data over a network.
While data transfers should be more efficient as a general rule, users may experience slower than usual data transfer speeds under certain conditions or even connectivity issues.
Managing Window Auto-Tuning in Windows 10
The first thing you may want to do is check the status of Window Auto-Tuning. If it is turned off for instance, it is likely that it is not the case for the slow downs, but if it is set, it may very well be the culprit.
Note: you don’t need administrative privileges for running the command above, but you will need them for modifying the Window Auto-Tuning parameter.
- Tap on the Windows-key, type cmd.exe, hold down Shift and Ctrl keys, and hit enter.
- Confirm the UAC prompt that opens.
- Run the command netsh interface tcp show global.
Locate the “Receive Window Auto-Tuning Level” value under TCP Global Parameters. If it is not set to disabled, it is being used by Windows to optimize TCP connections.
You may want to disable the feature to run connection tests and see if it is the cause for the limited Internet speed that you are getting out of the connection.
Run the following command to disable Window Auto-Tuning on Windows 10:
netsh int tcp set global autotuninglevel=disabled
You get ok as verification that the value was set correctly. You may verify this by running netsh interface tcp show global again.
Once disabled, start downloads just like before and monitor the speeds that you get. You
If it did not, you may want to turn it on again. This is done by running the following command:
netsh int tcp set global autotuninglevel=normal
Ok should be returned again to indicate that the new value was set correctly. It is recommended to check the global values again to make sure that is indeed the case.