Page 1 of 1

Poor download speeds in Windows 10

Posted: Thu Oct 22, 2020 12:15 pm
by tboorman
I would be very grateful for some help with improving my download speeds on my Windows 10 laptop. I have a 1 Gbps FTTH broadband connection, which has an average download speed of 900 Mbps. If I use a bootable Ubuntu USB stick on my laptop, I can consistently get download speeds of 800+ Mbps on a wired connection to my router, but when I am using Windows 10, the fastest download speed that I have achieved is 280 Mbps. I have run the TCP/IP Optimizer and chosen the optimal settings, tried both normal and experimental for TCP Window Auto-Tuning, and also tried disabling all offload settings on the NIC. Is there anything else that I can try? The NIC in my laptop is a Qualcomm Atheros AR8161 PCI-E Gigabit Ethernet Controller (NDIS 6.30), and I am using driver version 2.1.0.27 dated 18/09/2017, which I believe is the latest driver version available.

Thanks,

Tim

Posted: Thu Oct 22, 2020 1:23 pm
by Philip
Seems you have already done the basic troubleshooting tasks. Next step would be to tinker more with the NIC driver parameters, for example try manually setting speed and duplex (not auto).

Another thing you can try is resetting TCP/IP and Winsock, there are options to do that in the "File" menu in the TCP Optimizer. You can test using the Windows defaults settings, and after applying the TCP Optimizer "optimal" settings again, but resetting TCP/IP and Winsock ensures there were no other modifications from some other drivers/software.

Posted: Thu Oct 22, 2020 3:08 pm
by tboorman
Thanks Philip, I will give your suggestions a try. Should my laptop’s MTU be set to the same as my router’s MTU - this is 1480, as I have a PPPoE connection?

Posted: Thu Oct 22, 2020 11:55 pm
by Philip
I would use 1480 MTU on the laptop as well, otherwise the router would have to re-package all packets to fit its MTU. This is not a problem per se, but may introduce a couple of milliseconds latency.

Posted: Fri Oct 23, 2020 12:16 pm
by tboorman
I reset Winsock and TCP/IP, and then tried the following:

Windows default – https://www.speedtest.net/result/10296812773 and https://www.speedtest.net/result/10296818814
Optimal – https://www.speedtest.net/result/10296881418 and https://www.speedtest.net/result/10296885425
Optimal, TCP Window Auto-Tuning experimental – https://www.speedtest.net/result/10296941034 and https://www.speedtest.net/result/10296945314
Optimal, TCP Window Auto-Tuning, MTU 1480 – https://www.speedtest.net/result/10296986683 and https://www.speedtest.net/result/10296990685

The last one was the best, but none of these were near the download speeds that I should be getting.

There is not an option to set the NIC to 1000 Mbps full duplex, only 10 Mbps full or half duplex, 100 Mbps full or half duplex, or auto negotiation. Is this likely to be an issue with the Windows driver for my NIC?

Posted: Fri Oct 23, 2020 12:27 pm
by Philip
You may want to increase the number of Send/Receive buffers in the Network Adapter properties. I wouldn't use Experimental TCP Wndow auto-tuning, it used to have some issues with LAN transfers and such.

The only other thing I could immediately think of is to check CPU/Network load in the Windows Task manager, and, in your router's admin interface while testing at those speeds.

Posted: Fri Oct 23, 2020 12:35 pm
by tboorman
That last one should have read Optimal, TCP Window Auto-Tuning experimental, MTU 1480.

Posted: Fri Oct 23, 2020 12:40 pm
by tboorman
Philip wrote:You may want to increase the number of Send/Receive buffers in the Network Adapter properties. I wouldn't use Experimental TCP Wndow auto-tuning, it used to have some issues with LAN transfers and such.

The only other thing I could immediately think of is to check CPU/Network load in the Windows Task manager, and, in your router's admin interface while testing at those speeds.
I know it is not a router issue, as the download speeds are fine when I use a bootable Linux USB stick on my laptop. I will change the TCP Window Auto-Tuning back to normal, and see whether I can change the number of send/receive buffers in my NIC settings.

Thanks again Philip.

Posted: Fri Oct 23, 2020 12:46 pm
by Philip
I mentioned to also check the router load since different Network Adapter configurations may affect packet headers, QoS settings, etc. that can also affect router load and OS load, increasing the required processing power. This becomes more emphasized with higher speeds, if you notice 100% CPU load at 300+ Mbps you'd know to narrow down where to look for the issue, which may still be NIC drivers/settings. The Linux and Windows NIC drivers likely support different TCP/IP settings.

Posted: Fri Oct 23, 2020 5:17 pm
by tboorman
What I am going to try is increasing Receive Buffers from 512 to the maximum of 2048, and Transmit Buffers from 256 to the maximum of 1024.

digit.in/features/tech/tweak-network-adapter-properties-networking-ethernet-wifi-vpn-45243.html also recommends disabling Flow Control and Interrupt Moderation - do you think that I should do this too?

Posted: Fri Oct 23, 2020 5:33 pm
by tboorman
The above did not really help - see https://www.speedtest.net/result/10300977161 and https://www.speedtest.net/result/10300969208.

The CPU on my laptop maxed out during the tests.

Posted: Sat Oct 24, 2020 11:13 pm
by Philip
If your CPU is maxed out during tests that would definitely be the culprit, the Network adapter settings have to be examined more carefully, see which ones reduce CPU usage.

Posted: Sun Oct 25, 2020 11:51 am
by tboorman
Philip wrote:If your CPU is maxed out during tests that would definitely be the culprit, the Network adapter settings have to be examined more carefully, see which ones reduce CPU usage.
Thanks Philip. Any suggestions as to which ones are likely to affect CPU usage please?

Posted: Sun Oct 25, 2020 5:00 pm
by Philip
To reduce CPU usage, you may want to turn on Interrupt Moderation, turn on jumbo frames, and turn on some offloads like checksum, LSO, ARP, NS offload (it will reduce CPU load by turning some functionality over to the NIC).

Posted: Sun Oct 25, 2020 8:30 pm
by tboorman
Apart from jumbo frames and LSO, the others are already enabled. I will try enabling LSO, but would jumbo frames work with a broadband connection? Would reducing the number of RSS queues from 4 to 2 also help?

Posted: Sun Oct 25, 2020 8:57 pm
by Philip
RSS queues usually defaults to 4, however, reducing it to 2 may help reduce CPU utilization. It should generally be set to 4, or at most to the number of physical CPU cores before hyperthreading, whichever is smaller.

Posted: Mon Oct 26, 2020 5:54 am
by tboorman
I have enabled LSO, and have reduced the number of RSS queues to 2 (as my laptop has 2 CPU cores), but the CPU is still being maxed out when I run speed tests. I am at a loss as to what else I can do now.

Posted: Mon Oct 26, 2020 10:12 am
by Philip
You may want to try deleting/uninstalling the Network Adapter driver in device manager (it may be useful to download the driver and have it handy on the PC beforehand). Try and see if there is a difference in CPU utilization with the Windows default drivers for it.

It could also be some other software interfering with it, like, for example OEM programs ("Lenovo utility", for example uses the NICs and is known to cause high usage), anti-malware that is running real time (Bitdefender, other third-party firewalls/anti-viruses, etc.), VPN tunneling software, etc.

Posted: Mon Oct 26, 2020 1:06 pm
by tboorman
I am disabling Kaspersky Internet Security before carrying out any speed tests, and have unticked NordVPN LightWeight Firewall for the NIC. Does QoS Packet Scheduler need to be ticked?

Posted: Mon Oct 26, 2020 2:45 pm
by Philip
QoS packet scheduler only applies to some apps/transfers.. Third-party antivirus and firewall software is definitely a suspect, some of them affect load even when turned off.

Posted: Sat Jan 02, 2021 3:09 am
by obradka
Philip wrote:QoS packet scheduler only applies to some apps/transfers.. Third-party antivirus and firewall software is definitely a suspect, some of them affect load even when turned off.

Make sure that there are no barriers between the router and the receiving device. This can be, for example, metal objects, walls and various sources of electromagnetic field.

Posted: Tue Feb 01, 2022 5:12 am
by JuneAmara
Nothing to do with Windows version.

Mtu

Posted: Fri Feb 11, 2022 6:52 am
by LeckerRK
tboorman wrote:That last one should have read Optimal, TCP Window Auto-Tuning experimental, MTU 1480.
Schnelles Internet über Kabel verwendet 1500 MTU und Windows Update auch,davon kann ich nur abraten denn der ideale Wert auch für Kabel ist 1492 und PPPoE.Time to Live sollte bei jedem Anschluss getestet werden entweder TTL 64 oder meistens TTL 128 als Custom einstellen nach Speedtest z.b. bei
https://www.speedtest.net/de oder bei
https://www.speed.io/
nach den Windows Updates sollte man TCL Optimizer wieder ausführen da Windows bei den Updates immer die Werte beim Internetanschluß verändert.

Die besten Speedtest bekommt man z.b. bei Steam wenn man ein Spiel runter lädt und vorher bei Downloads seinen Server auf Holland stellt Netherlands denn der ist schneller als Deutsche und Steam holt das maximum an Download raus.
Jeder sollte seine Internetverbindung ob Ethernet oder Wlan ect. auf Privat stellen und bloß nicht öffentlich.