Find out if Windows 10 is limiting your Internet speed
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 may want to fire up a P2P client, Usenet program, FTP client or server program to find out if disabling Auto-Tuning Level did resolve the issue.
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.
If you want to know more about Window Auto-Tuning, check out the excellent analysis of the feature here.
OMG – THANKS SO MUCH FOR THIS !!!!
Looked everywhere. This was the fix for my problem.
My download speed returned to the normal but the upload speed still nonexistent
Thank you very much, it solved my connection being stuck at 100mbps when it is supposed to be 1Gbps.
Thank you, I found this setting disabled after just getting 1000 mbit fibre installed. Windows was limiting me to around 150mbit. enabling it took me to 566mbit right away. I tested my networked cables with iperf and they are good for 988mbit. Still running linux I am able to achieve 900mbit, so looks like windows is the bad guy here for me. Thankyou again though this has made things much better.
This fixed my packet loss issue in online gaming. I’m using an older Huawei modem so probably Windows 10 doesn’t like it much after the update. Thank you so much ! I’ve been searching endlessly for a fix
Disabling autotuning also killed my download speed. I couldn’t understand why it was maxing out at 200Mbps on my 1gbps fibre. As soon as I turned it back on (normal) I was reaching download speeds of 970mbps.
On one of my machines it was set to disabled and it capped TCP transfer speeds on all network adapters of that machine to 100Mbps (even for LAN internal file copy operations).
Setting it to “normal” gave me full speed back.
My windows 10 computer is set up to dual boot with Linux. Ethernet using Linux is 100Mb/s windows limits it to 10Mb/s. Can’t find out why. Have set speed to 100Mb/s Full duplex in device manager makes no difference. Still only get 10.
seems like netsh int tcp set global autotuninglevel=normal worked for me
Thank you so much for this, for about a week i was wondering why my speed was so slow, my other devices had fast speed. i was getting 1 mb/s on my pc and then i did this and not i am getting about 15 mb/s. so stupid that this is in windows
For some reason i have to keep doing this occasionally. Does anyone know why it is not permanent for me? It is happening almost once a day
Changing “Receive Window Auto-Tuning” to normal, from disabled which was the original setting changed my internet speed test from 20Mbps to 103Mbps. A dramatic improvement. I am just glad I found this article and solved a long running mystery.
So to begin this I need to follow step 1…..I cannot get this to work….
I have a Lenovo Y700 running Win10 1703 (Creators Update) tethered to an iPhone 6SPlus w/IOS v10.3.1 hotspot via Vodafone 4G connection.
When connected to the hotspot, I received very slow internet speeds when using Firefox v53 or Chrome v58 but other internet applications, including IE and Edge worked fine. Further testing showed that only HTTPS sites were affected.
After much searching, I found that setting Auto-Tuning to disabled resolved the issue.
Note that connecting through this hotspot used to work just fine, so I am unsure if it this was due to an upgrade in WIndows 10, or the recent upgrade to IOS, or possibly something in the Vodafone network.
It also puzzles me that only HTTPS connections were affected (in FF/Chrome) and IE/Edge was not affected at all.
Hopefully this info will be useful to someone.
Setting this to disabled caused a massive drop in speed for me. Setting back to normal return normal speed.
This article proved to be a timely find. Hadn’t used a Dell Vostro 3700 laptop running Win 10 Pro 32-bit for three months, booted it up, ran Windows update, installed/updated a load of software (the latter including OpenVPN), after which the wifi would go down after a shortish while, a restart always led to a BSOD, DRIVER_POWER_STATE_FAILURE error. All troubleshooting steps failed (selectively disabling/uninstalling/downgrading changes made etc). Made this change; system now stable (touch wood!). And the internet speed, which before had seemed quite noticeably sluggish compared to my other devices, is as good as the rest.
cheers!
This worked for me. My original service is 20/10mbps (I’m in Canada and because the big telecoms hate us, this is the largest I can get), after the Windows update on August 9th, my speed was maxed at about 2/1mbps. Extremely low. I followed the steps here, restarted my computer and I’m back to 20/10. Thanks!
From this link:
https://blogs.technet.microsoft.com/networking/2016/08/11/an-update-on-windows-tcp-autotuninglevel/
“Like all modern operating systems Windows has receive window auto-tuning to dynamically adjust the receive buffer size to the throughput and latency of the link. Disabling this feature will definitely limit your Internet speeds. Auto-tuning is consistent throughout all variants of TCP and present in all modern operating systems.  In the modern Internet the range of latencies and throughput speeds that must be accommodated is simply too large to manage statically and must be adjusted dynamically. If you have changed your AutoTuningLevel to disabled, please reset it to normal in order to restore your Internet speeds using the following commands in an elevated command prompt…”
Here are my results: http://screencast.com/t/Of2VxIHNM
just to confirm a reboot seems necessary, I can confirm speed is back (not sure if this was individual settings from your article Martin or TCP Optimizer)
For me it was TCP optimizer. My setting is still on normal.
GOD BLESS YOU MAN YOU ARE A LIFE SAVER. I WAS ON THE VERGE OF BUYING A NEW MOTHERBOARD AND ENTIRE NEW BUILD :P. But this little tool fixed it. Thank you random stranger <3
Same here, after anniversary update my downloads are capped. Tried to apply fix here (no reboot yet) no effect
Damn MS, this is quite unbelievable. On my Mac its all good!!! :-(
I’d recommend running TCP Optimizer as well. They’ve got a Windows 10 version now as well!
100Mbps down – I’m okay! Not happy with the 6Mbps up though, I’m on fiber, and I feel that the upload should also be 100Mbps.
Did just a quick download/upload test and I get lower speeds if I disable autotuning. Ping isn’t affected. I have 100mbit dl/ul.
And I already get ~9mb/s on torrents so everything seems fine with autotuning turned on.
With this tweak my ping went down (the only thing I noticed) so it’s okay to use, I not found any negative side effect using it. Thanks.
If anyone know how to increase the RTO limit from 2000 -> 3000 I would like to know, not found something.
@ CHEF …….
http(semi colon)//www(dot)techradar(dot)com/news/computing/pc/make-linux-faster-lighter-and-more-powerful-641317/4
???
The “feature here” link says that Windows Heuristics should be disabled, n not Receive Window Auto-Tuning Level. Pls confirm.
Yes but here in Brazil the main problem is always poor connection speeds and lousy DNS servers. I did notice some odd behavior in Windows 10 but got solved by itself. The latest upgrade corrupted Edge browser in my profile so I had to create a new one. Its a new notebook so there was not much loss. These days I use more the cellphone as Android 6 is great…
Didn’t notice any measurable difference disabling “Receive Window Auto-Tuning Level”. what i suggest instead is to change some settings on your Network adapter, namely:
“Receive Side Scaling”
When Receive Side Scaling (RSS) is enabled, all of the receive data processing for a particular TCP connection is shared across multiple processors or processor cores. Without RSS all of the processing is performed by a single processor, resulting in inefficient system cache utilization.
http://www.intel.com/content/www/us/en/support/network-and-i-o/ethernet-products/000006703.html
https://blogs.technet.microsoft.com/networking/2013/07/31/drive-up-networking-performance-for-your-most-demanding-workloads-with-virtual-rss/
http://terrytlslau.tls1.cc/2014/04/enabling-virtual-receive-side-scaling.html
“Receive Buffers”
“Transmit Buffers”
https://blog.serverfault.com/2011/03/23/performance-tuning-intel-nics/
Wow great tip Martin,my speed doubled up!
Rather than using the command line, you can try the TCP Optimizer from:
http://www.speedguide.net/downloads.php
It allows you to turn this setting off/on along with adjusting many others.
I think internet slowdowns are mostly related to ISP problems, server problems or DNS problems. Wndows has a great TCP window management since the times of Vista http://www.dslreports.com/tweaks/RWIN
Inspired by this article I checked returning to OpenDns and got a 20% increase in my speed as I was checking using the “safe DNS” included in Avast. I regulary use NetSpeedMonitor that has the only problem of phoning home to the developper using Windows Explorer. But I guess he is alright! I test speed using http://www.speedtest.net/ that pings to find the nearest server.
You are right, but there are situations where the local setup may play a role. If you upgraded to Windows 10, had great speed before and afterwards not so much, then it seems likely that the upgrade may have something to do with it. I’d investigate it first from that angle, especially since you can try a couple of things to see if they resolve the issue.
Martin,
update 1607 slowed down my internet connection. when I use chorme or firefox, the response time is long, and sometimes I have to repeat the request for a website 3 times.
Tried the above mentioned changes, it did not make any difference.
any idea? did anyone else notice the slow down?
tks
Yes, gullible customers, let microsoft handle your connection speed.
Its not really the incoming speed I have a problem with. I’m pulling down 800 mb/s, which is way more than I need. Its not even the outgoing speed, although I am hobbled by my provider and only get 20mb/s.. like (3MB/s. Meh.)
Its the outgoing content that bothers me. Its encrypted, and I am not offered a key. Who the *F* knows whats in it! Awhile back facebook found a way to enable your camera while disabling the “recording mode on” LED next to it. They were recording users on the sly and claimed it was an “accident”.. like they somehow didn’t see all that data flying over the wire back to them. Apparently M$ was the first company to hand over its master-keys to the Feds last decade. “Allegedly” at least. So they are likely no better.
I…. I think I’m going to install linux on this machine too. Maybe Whonix this time. Its supposed to be ultra-secure.
Mark, are you sure it’s good idea to turn off auto tuning instead of heuristics, which is mentioned in article you linked?
I would turn off auto tuning to verify if it is the cause for the issue. If you don’t notice any issues after turning it off, and if it is the issue for the lower speed, then there is no reason not to keep it disabled.
However, if you notice other issues when disabling auto-tuning, then you may want to experiment with other options such as turning off heuristics, especially if it shows as restricted.
No please. Do NOT turn off autotuning, it will disable TCP Window scaling. It is ok to off heuristics.
I think normal user should not have bothered with this, I always get max speed.
quoting from the page
“to even notice this problem, you would need an Internet connection faster than 140Mbps.”
The article also refers to Restricted level only and not the default Normal.
People who visit gHacks are typically not the “normal user”, however, this setting is easily turned back on in a few seconds. I don’t see a problem for someone testing out the connections. It should also note that the article is 2 years old. Microsoft could have changed things since then and also the bottle-necking that was going on could have also been fixed/changed since then as well. Common processors are more powerful than they were 2 years ago.
I should rephrase that, by “normal user” I meant average internet user. My max speed is 10Mbps and it’s considered very fast here. I consider one who has 140Mbps connection is not “normal user”.
And I don’t understand what’s your point about processors?
It has nothing to do with processor