Friday, February 12, 2016

Windows 8.1 Disk Usage / IO at 99 or 100%

tl;dr


We ended up getting solid state drives on our team and our laptops are running super fast now!

The Long Story


So I just resumed my laptop from hibernation.  Things are running pretty slowly.  It can last for up to 15 minutes.

It is a fresh install of Windows 8.1 from about 3 months ago.  I have a DELL PRECISION M4800.  The laptop is pretty good but it does suffer from slowness.  I have finally pinpointed the slowness to the Disk.  If I open Task Manager, I can see whenever my laptop is slow, the Disk column is at 99%.  There is usually no single process hogging the disk.  Usually it is several.  I have never seen Memory maxed out, and CPU will spike occasionally, but not often.

Most of the time the slowness is during the first 10 minutes of boot up and starting any program.  I mean any normal GUI program like chrome, paint.net, IE, Outlook, etc.  It takes at least 30 seconds (usually more) to start any program.

Back to the disk.  I've also seen slowness when I am emptying the trash or doing large file operations.

On to the fix.  This is the first thing I tried, changing the virtual memory settings:

http://answers.microsoft.com/en-us/windows/forum/windows_8-performance/windows-8-keeps-slows-down-to-100-disk-usage-and/cd787f8d-e7b4-4872-aecb-6f0cd15ad942?auth=1

Of course you have to reboot to make this take effect and I have work to do!  So stay tuned!

This did not help at all.  I should have known.

I just now went to Control Panel > System > Advanced System Settings > Advanced tab > Performance > Settings > "Adjust for best performance".  

This helped a lot actually.  I still see my laptop maxing out the disk at 99% periodically, but the performance is noticeably faster, especially after boot up when I open several applications.  I don't think this solved the root of the problem.

I also tried to disable search indexing on my C drive.  Let's see if that helps.  (WARNING: Disabling search indexing on the full drive can take a long time.)

Turning off indexing did not seem to help that much.

I also tried this solution, but it did not seem to do much:  http://superuser.com/a/926390/199528

Ug.  I think it's fair to say that nothing so far has really helped.  See screenshot below.



I'm starting to believe that my virus scanner is the problem.  Not sure what to do next though.  I don't see any way to temporarily disable it.

My buddy Tim has the same computer and suggested disabling SpeedStep, but unfortunately there is no noticeable change for me.

I have disabled SpeedStep again and it is not helping.  Now I have done this google search:

https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=windows%208.1%20task%20manager%20disk%20100

And found that my virtual memory is quite low.  I don't have my physical memory maxed out, but it is worth a try.  I have set it to min 8000MB (same as my physical memory) and max 16000MB (double physical memory).  I need to reboot (later) and find out if this helps!

It didn't help.

I tried stopping some services using Start > Search > msconfig to disable and services.msc to see what the service is.  I disabled a lot of bluetooth services since I don't use them and superfetch.  This did not help either.

I restarted my computer in safe mode and safe mode with networking.  Both were working much better - I could start programs in only a few seconds, but I still do not know what services I need to stop.

Wow!  Now I am getting somewhere.  I have a balanced Power Settings profile in effect.  I changed from balanced to High Performance temporarily.  Then in a balanced profile, I found that setting my Hard Drive sleep minutes to zero (when plugged in) to disable Hard Drive sleep is helping.  Programs are now starting up in only a few seconds!

Ug. That was a fluke.  It's still very slow to start up.  No root cause identified yet.  It is something software related since it was starting up applications very quickly in safe mode.  Now I am trying a fully High Performance Power profile.

A friend from work recommended Start > Run > control.exe srchadmin.dll.  Then disable indexing for mapped drives.  I tried turning indexing off for everything.  We'll see if that helps.