1

I am trying to troubleshoot a family members PC that is getting a very poor download speed compared to all other computer on the network.

All other computers get around 23Mb/s down 4Mb/s up. But this computer is getting a >0.1Mb/s down and 4Mb/s up.

I initially thought this was a wifi issue however when accessing files on a local NAS I get 35MB/s up and down.

Troubleshooting further I found I do not have the issue when using a wired connection but do have the issue when using a variety of different USB wifi dongles with different chipsets (or the inbuilt PCI adapters)

I have also tested the connection from Ubuntu which did not have any issues so I believe I can rule out hardware

I have removed the drivers and reinstalled the latest version, with no effect.

All this leads me to believe it is an issue with some software affecting only internet downloads. Looking around a number of people seem to have had issues with AMD quick stream/sync but this is not installed on this machine.

How can I go about troubleshooting what software is causing me trouble, noting I was not able to test in safe mode as the drivers for the card do not get loaded.


EDIT: Added Part Details

  • Operating system: Windows 10
  • Motherboard: Gigabyte B150M-HD3
  • Processor: I5-6500
  • PCI Wifi Card: ASUS PCE-AC56, using driver Asus 7.35.317.0 dated 19/09/2015
  • USB Wifi Adapter (with same issue): Netgear WNDA3100v2 driver version Netgear 5.100.68.29 dated 13/10/2010
  • Router: ASUS DSL-AC68U

I have now tested in safe mode, with the same issue still occuring, and have run the sfc scan with no errors found.

  • Although you've already ruled out hardware, it could be useful to give us more details: what is the system you're using (COULD, RAM, OS...)? What type of Wi-Fi adapters you've tried? How exactly do you experience slow speed (browser (which one?), ftp, ipconfig)? Ubuntu - do you mean it works perfectly? ... – Máté Juhász Sep 27 '17 at 14:35
  • Do you get 35MB/s up and down on the NAS via wired or via WiFi? – That Brazilian Guy Sep 27 '17 at 16:19
  • I will update the question later tonight with part numbers but yes the 35MB/s is over wifi I believe I got about 50MB/s over wired. I have been testing speed via the Google speed test and ookla, with Firefox and Chrome. On Ubuntu I used Firefox and got the same 23Mb/s down 4Mb/s up I get on all my other devices. – Hugoagogo Sep 28 '17 at 9:00
  • So one other thing is that ping is reasonable (<20ms) and that the download speed seems to reliably start at around 1Mb/s and drop to 0.1Mb/s over the first 5 seconds. – Hugoagogo Sep 28 '17 at 9:02
2
+25

I don't have a simple, quick solution for you, but I do have an idea for something that should at least work. First I'll list some trivial things you should check for - I'm guessing you've done them already, but it doesn't hurt to be sure. You haven't mentioned which OS you're using, but since it's not Ubuntu I'm guessing Windows. If it isn't, modify the details in this solution for your OS (e.g. instead of PowerShell use bash or whatever, replace utilities with equivalent ones, etc.).

Simple Tests

  • Make sure you don't have something installed and purposely configured to limit download speed, like NetLimiter.
  • Check the network usage of all your running processes like atype suggested and verify that everything is low.
  • Run tracert to see if the holdup is really internal (and not, say, in your router). You said you could get good speeds to your NAS (which actually makes it less probable that it's an internal problem), so maybe there's another point in your route that's choking your bandwidth for some reason.

Complicated Test to Find the Guilty Process/Service

This requires a little coding - nothing too much, though.

Basically, the idea is to suspend every running process/service one at a time and see if your download speed improves. For this you'll need to use the Windows API as shown in the example here (just change the GetDiskFreeSpaceW function to whichever function you need).

Processes

  1. List all the running processes with Get-Process.
  2. Loop over the list and for each process:

    1. Verify that this isn't the process running the script by comparing to $pid (you might also need to check for parent/ancestor processes; I'm not sure).

    2. Suspend the process using the DebugActiveProcess Windows API function. Also, this may prove useful.

    3. Waiting for a few seconds here is probably a good idea, but it may be OK to skip this.

    4. With the process now disabled, test your download bandwidth. I found this page with some examples on how to do that in PowerShell, and this seems like the simplest way:

      $a=Get-Date; Invoke-WebRequest http://client.akamai.com/install/test-objects/10MB.bin|Out-Null; "$((10/((Get-Date)-$a).TotalSeconds)*8) Mbps"
      

      You can also try using this speed test script; it's in Python so you should be able to run it on another OS if you need to.

    5. If the bandwidth passes your desired threshold (say, 1 Mbps; decide for yourself) then this process is limiting your download speed. Print out its name or process ID or whatever and stop the loop.

    6. Resume the process by invoking the DebugActiveProcessStop function of the Windows API.

Services

It's possible that what's limiting your download speed is a service and not a process. In this case you can do the same thing as I suggested for processes, only you need to use different API functions (Suspend-Service and Resume-Service) and you don't need to verify you aren't suspending yourself (since the script is not a service).

Caveats

There may be critical system processes and services that you should avoid stopping, and possibly even can't. In case of the former you'll need to make an exclusions list, and in case of the latter you'll need to take into account that your API calls can fail (actually, you should do that anyway, and perhaps print out a warning when this happens and continue).


I know all of this is more work than you hoped to do, but it's the best idea I've got for you. I hope it helps you solve your problem.

2

Boot into Safe Mode with Networking, to disable all non-Microsoft products.

If the problem is still there after the boot, then this is a problem with Windows itself. Run sfc /scannow as checkup. If this finds nothing then stronger measures are required. Let me know.

If the problem disappears after the boot, then some installed product is responsible. Use Autoruns to disable startup products selectively and reboot normally as a test, re-enabling if not guilty. Most such problems are caused by security software and antivirus.

  • I had already tried safe mode with networking but windows doesn't have a driver for the card, is there any way to get The driver to load in safe mode – Hugoagogo Sep 27 '17 at 21:51
  • Are you using wireless or wired? If wireless, can you connect via wired? Try also this: After boot, enter Device Manager, under Network adapters right-click the card and see if the menu option Enable is available. – harrymc Sep 28 '17 at 5:24
  • The problem doesn't occur over a wired connection – Hugoagogo Sep 28 '17 at 6:20
  • Wireless is not enabled by default for Safe Mode with Networking. Do you manage to Enable after safe boot the card in Device Manager and does the problem persist? – harrymc Sep 28 '17 at 8:02
  • I can confirm that in safe mode the problem persists. – Hugoagogo Sep 28 '17 at 10:43
1

Run resmon.exe and select Network tab. There you can see wich processes consume most bandwidth. Alternatively you can use TCPView from Sysinternals suite.

  • This just shows the same low rate being used by whatever program I am checking the speed with. How can I tell what is limiting the speed. – Hugoagogo Sep 25 '17 at 9:06
  • It seem i misunderstood your question. Have you tried older driver version? Also try measuring speed between two local computers using iperf or other tool. – atype Sep 25 '17 at 9:09
  • As per the question I get 35MB/s internally (as reported by the file copy window), I have tried two driver versions of the internal PCI wifi adapter, but also a few USB adapters with compleatly different drivers. – Hugoagogo Sep 25 '17 at 9:12
  • Sorry if that came across a bit rude, long day and have been stuck on this a while, I appreciate the suggestions :) – Hugoagogo Sep 25 '17 at 9:14
  • It just seems weird, I would look into windows firewall and test speed with different protocols. – atype Sep 25 '17 at 9:30
1

This answer does not directly answer the title question but I wanted to include it here, even if it gets voted down, as it was the end solution to my problem and can hopefully help some other people avoid so much trouble.

As a last resort in my troubleshooting I ran a speedtest when hotspotted to my phone and got 24Mb/s down 24Mb/s up. This gave me a few further things to google and I came across this thread on the Asus forums.

https://vip.asus.com/forum/view.aspx?SLanguage=en-us&id=20160101061223931&board_id=11&model=DSL-AC68U

In summary router firmware versions after 3.0.0.4_376_2187 have issues with some windows clients, even down to the patterns of high initial speed, tapering down to small spikes averaging out to less than 0.1Mb/s.

A work around discovered by user aorengm was to enable 802.1Q with a VLANID=0 and 802.1P=0

After setting this and rebooting the router my problem has been resolved!

Of slight note, when troubleshooting initial VDSL issues with our ISP they said that 802.1Q should be disabled (and I am pretty sure this was the default on the router). I don't understand enough about what the setting does but everything seems to work well with it enabled.

I am very glad to have this issue resolved, thankyou for all this assistance on troubleshooting this frustrating issue.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.