Fixing Vista – Stopping hard-disk trashing!
Recently I’ve been running into a lot of trouble with my trustworthy HP Compaq dc5850 and Vista. Every other day, without any discernable pattern, the computer would boot up and the harddrive would just keep trashing about, doing nothing usefull and effectivley blockingme from doing work. A lot of research and some obscure forum posts later I now have a short list of what to do to stop harddisk trashing and speeeding up Vista.
Things to do:
- Turn off Indexing
- Turn off ReadyBoot
- Turn off scheduled Tasks (System Restore & RAC)
- Turn off PreFetch and SuperFetch
Indexing
Windows Vista, like XP before it, builds itself an index file, which contains markers to all files and folders in certain locations on your disk (User folders, the Desktop, Program Files, etc.). To do this, it must churn through the hard disk searching and indexing each and every last file. Vista periodically rebuilds this index, causing further drive thrashing. By default, the files within your ‘user’ directory (Vista’s equivalent of XP’s ‘C:\documents and settings\username’ which contains your documents folder and your desktop) are indexed.
There are a couple of ways to reduce the disk overhead that the indexing feature imposes. The obvious and more drastic method is just to turn drive indexing off. In Windows XP, this was almost an automatic step when tweaking the operating system, since the indexing feature was next to useless anyway. With Windows Vista’s enhanced search features, you may want to think twice about this if you have, or expect to have a large amount of data (in terms of number of files) stored on your computer. Indexing does make searching for files and folders quite a bit faster, but searches do still work with the same results without indexing. They may just take longer.
To turn the indexing feature off in Windows Vista:
- open the ‘start’ menu and type ‘services’ in the search bar. Hit ENTER.
- In the services window, scroll down until you reach the ‘windows search’ service. Right click it and hit ‘properties’.
- In the ‘startup type’ dropdown box, change the value to ‘disabled’, then click the ‘stop’ button below to stop the service immediately. Hit ‘ok.’
If you don’t want to disable indexing entirely, consider altering its function to make it index less files, keeping only what you are likely to search for. Windows Vista allows you to get very specific about what types of files will be indexed.
ReadyBoot
Here’s how to disable ReadyBoot (not readyboost) in Windows Vista:
- Launch the “Reliability and Performance Monitor” program (via Vista’s Administrative Tools or via any of the other routes to launch this program).
- On the lefthand side of your screen click “Data Collector Sets”, and underneath that heading click “Startup Event Trace Sessions”.
- Now on your righthand side you’ll see a list that includes ReadyBoot, and you’ll see the word ‘enabled’ beside the word ‘Readyboot’.
- Double clicking the list item brings up the ReadyBoot Properties dialog.
- This dialog has a number of tabs. Pick the “Trace Session” tab.
- Finally, uncheck the “Enabled” checkbox on that tab.
According to Microsoft, ReadyBoot decreases boot time by up to 20%. The price paid is it causes annoying grinding on the hard disk at times when the OS thinks the computer is idle. I regard the peace and quiet as better than the 20% reduction in boot time. And actually I didn’t notice any reduction in boot time after I disabled ReadyBoot on my machine. (I have also disabled ReadyBoost and Superfetch for the same reason.)
System Restore
The “System Restore” scheduled task is the most likely culprit when you notice your machine going into a frenzy of disk grinding for around 10 minutes once or twice a day (more than 10 minutes if you have a lot of files). Microsoft says that by default this scheduled task runs shortly after you first boot the computer and additionally once a day if the computer isn’t shut off daily. It’s a totally unnecessary task and that’s true for almost every user, I assert.
To disable it in Computer Management go:
- TaskScheduler –> TaskSchedulerLibrary –> Microsoft –> Windows –> SystemRestore.
- Doubleclick in the UPPER central window pane; then click the “Triggers” tab, and then the “Edit” button in the lower part of that tab.
- Finally, in the Edit dialog, uncheck the “Enabled” checkbox.
RAC: The RacAgent Task.
This task is scheduled to run every hour after you start the computer, and also at intial startup. It causes grinding on the hard disk. Only lasts for about 10 seconds but is distracting. Microsoft says “This task is a Microsoft Reliability Analysis task that processes system reliability data.” It’s very unnecessary to analyze the data every hour. It’s unnecessary to analyze it until the data is about to be consumed by a human. The programs that present the data to a human will run the task again anyway.
The hourly job can be disabled:
- Go to “RAC” under TaskSchedulerLibrary –>Microsoft –>Windows.
- In order to see the RacAgent task to disable it, you have to check the item “Show Hidden Tasks” under the top-level View menu (press ALT-v see the view menu).
PreFetch & SuperFetch
It is possible to turn off both PreFetch and Superfetch via a registry tweak via Run/Regedit.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters\
- Double click EnableSuperfetch and change the value from three to zero
- It works for EnablePreFetcher, too
- Reboot, of course, after changing these values
The values for EnablePreFetcher are:
- 0 – Disable Prefetcher
- 1 – Application Prefetching
- 2 – Boot Prefetching
- 3 – Both Application and Boot Prefetching
The values for EnableSuperFetch are:
- 0 – Disable Superfetch
- 1 – Boot Superfetching
- 2 – Application Superfetching
- 3 – Both Application and Boot Superfetching
Not sure exactly which of the above did the trick for my setup, but everything is running very smooth and stable since I turned all these off.
Happy Computing!
