1

My problem

Whenever I download a large amount of data (ex: downloading a game from Steam), my entire PC comes to a crippling low <1 frame per second, despite having relatively decent hardware. This only seems to happen with large downloads as I can download single images and webpages without issue. To make matters more confusing, this issue used to not be present on this machine prior to being upgraded to Windows 10 (from Windows 7 Home) as well as potentially for a short period afterwards that I don't recall the issue occurring. Another thing to note is that I do not have WiFi in this computer, only Ethernet.

My question

What is the cause of this poor performance I am experiencing and how do I fix this?

My theory

It would seem that Windows insists on downloading large downloads on the first core listed in task manager every time. This is supported by this screenshot of Task Manager that I took while downloading a game:

Task manager showing high single core usage

Processes running while downloading a game:

Task manager showing running processes

I do not know if this is the intended behavior or if it is actually the root of the problem. But so far I don't have any evidence that disqualifies it.

Things I have tried

  • Updating my Ethernet driver (Realtek PCIe GBE Family Controller) multiple times
  • Adjusting my power plan
  • Making sure Windows is up to date.
  • Using latencymon to investigate driver latency. It frequently shows massive latency with ndis.sys (when downloading files) that I have been unable to resolve. I assume this is related in some way.

My relevant system specs

  • Windows 10
  • AMD FX-8150 CPU
  • GTX 1060 6GB GPU
  • 16 GB 1600Mhz DDR3 RAM
  • Multiple drives (boots from a 256GB Corsair SSD)
That Guy
  • 43
  • 1
  • 9
  • does this only happen in steam, or also in browsers and other downloaders? – Richie Frame Mar 28 '18 at 02:53
  • @Richie It happens outside of steam too. Most recently I tried downloading Fortnight using the Epic Games Launcher and it suffered from the same problem. – That Guy Mar 28 '18 at 03:03
  • Can you tell what process uses the CPU the most? How about antivirus and its settings regarding network connection and data being downloaded? – Kamil Maciorowski Mar 28 '18 at 05:31
  • What antivirus do you have? – Mokubai Mar 28 '18 at 06:32
  • look which process causes high CPU usage? System process? If yes, [analyze system usage](https://superuser.com/a/1164299/174557) – magicandre1981 Mar 28 '18 at 15:12
  • You may want to check if TRIM is running on your SSD. https://www.windowscentral.com/how-ensure-trim-enabled-windows-10-speed-ssd-performance You can manually run TRIM also: https://winaero.com/blog/trim-ssd-windows-10/ – essjae Mar 28 '18 at 17:25
  • @KamilMaciorowski The process is always whatever application initiated the download (ex: Steam). – That Guy Mar 28 '18 at 20:33
  • @Mokubai I'm currently using Avast Free antivirus. I have tried disabling it to no effect. – That Guy Mar 28 '18 at 20:33
  • @essjae Trim is enabled (just double checked). – That Guy Mar 28 '18 at 20:34
  • @magicandre1981 The program that initiated the download is always the highest process (typically 20-25% usage) though I have noticed that Superfetch is sometimes second (around 3% usage). Not sure if that's related. – That Guy Mar 28 '18 at 20:39
  • 1
    btw, the statement that _"It would seem that Windows insists on downloading large downloads on the main thread and nothing but the main thread"_ is... odd. I have no idea what you mean by "the main thread". Threads are parts of processes and as far as Windows at large is concerned there is no "main thread". Most programs do have a thread that could be considered the "main thread" but it is up to each process's developer to decide which one or several of a process' threads performs any download. All that said, downloading should be an I/O bound job; it should not take appreciable CPU time. – Jamie Hanrahan Mar 29 '18 at 05:27
  • @JamieHanrahan Ah, thanks for the heads-up, I am probably using incorrect vocabulary. Perhaps it would be more correct to say that it always seems to run downloads on the same core (the first one task manager shows) which I (incorrectly) assumed was the "main thread". I'll update my question accordingly. – That Guy Mar 29 '18 at 06:50
  • interrupts are also high. open cmd.exe as admin run **wpr.exe -start CPU && timeout 60 && wpr.exe -stop C:\HighCPUUsage.etl** while you have the issue. zip the ETL + NGENPDB folder and share it (Onedrive). I'll analyze it. – magicandre1981 Mar 29 '18 at 14:05
  • @magicandre1981 Sure thing. Here are the results: [link](https://1drv.ms/u/s!AqDLxMmExJnKhHyUnqsDeoa1fuNJ) – That Guy Mar 29 '18 at 20:48

1 Answers1

3

Analyzing the ETL shows that Interrupt/DPC are caused by the driver vsdatant.sys which seams to be part of ZoneAlarm firewall.

enter image description here

enter image description here

So remove ZoneAlarm, reboot and look if downloading is faster and using less CPU.

magicandre1981
  • 97,301
  • 30
  • 179
  • 245
  • Wow, that did it! In hindsight, I can't believe I overlooked something so obvious. Thanks for the investigation. Hopefully this will be helpful for some other ZoneAlarm user who's as confused as I was. – That Guy Mar 30 '18 at 23:56
  • Ah, scratch that. It appears my celebration was premature. After using my computer for a short while (after uninstalling ZoneAlarm and restarting) it appears the issue is back once again. Here's a new ETL zip: [link](https://1drv.ms/u/s!AqDLxMmExJnKhH1BRVx-Vw0y22ya) – That Guy Mar 31 '18 at 00:05
  • still the same issue. vsdatant.sys is causing the DPC usage. Use ProcessHacker to stop the driver under the services tab. here you can also delete the driver entries. also remove the driver from system32/drivers folder. – magicandre1981 Mar 31 '18 at 14:05
  • Well now I am thoroughly confused as ProcessHacker doesn't display that driver under services and it would seem that the issue is now gone (again)? I have no clue what's going on, but I'm not complaining if it's actually resolved for good this time. Is it possible that I would have had to restart my system multiple times to fully remove it? – That Guy Mar 31 '18 at 19:33
  • If the problem doesn't reoccur in the next couple days, I'll accept this as the answer. – That Guy Mar 31 '18 at 19:38
  • is the driver now gone from your drive? use [Everything](https://www.voidtools.com/downloads/) to search very fast for the file. – magicandre1981 Apr 01 '18 at 18:19
  • The only driver that shows up when searching Everything for "vsdatant" is "vsdatantxxx.sys" under "C:\Windows\System32\drivers". – That Guy Apr 01 '18 at 21:53
  • can you delete this driver or is this driver loaded? – magicandre1981 Apr 02 '18 at 06:56
  • I can delete it. Would you recommend doing so? – That Guy Apr 02 '18 at 19:15
  • move it to D:\ or any other location. if the issue is solved delete the file later. – magicandre1981 Apr 03 '18 at 15:44
  • Alright. I haven't noticed the issue return again so far, so I'll mark this answer as accepted. – That Guy Apr 03 '18 at 16:38