Last Updated on September 2, 2024 by Mathew Diekhake
Not to be confused with Superfish (malware), SuperFetch is a service that Microsoft introduced to Windows Vista and is still available in Windows 10 today. It’s a follow on from its predecessor, Prefetcher, which was available in Windows XP.
SuperFetch is memory management technology that helps in the responsiveness of your computer programs, prioritizes programs that you’re currently using over the background tasks, and allows programs load quicker by tracking the programs you must often use and preloading them into the memory.
SuperFetch is enabled by default in Windows 10. There is much debate about whether SuperFetch is necessary for computers with SSDs. Everyone is in agreeance that SuperFetch should be enabled on HDDs unless you’re finding it frequently maximizing out your disk usage.
If you are finding SuperFetch in the Task Manager and that it is using up a lot of your computer’s CPU and disk resources in particular, then you may wish to disable it. Before you do though, it’s worth noting that the high disk usage may drop down within a few minutes after booting up your computer and should remain at a much lower level for the rest of your duration on the computer. Before keeping SuperFetch disabled permanently, you may wish to test the results of how your computer performs with it disabled first.
The following tutorial demonstrates how to enable and disable SuperFetch when you’re using a version of the Windows 10, Windows 8, Windows 7, or Windows Vista operating system.
Method One: How to Enable/Disable SuperFetch in Services
Here is how you can enable and disable Microsoft’s SuperFetch directly from the Windows Services manager:
Note: Microsoft has renamed the SuperFetch service to SysMain in Services.msc.
1. Open the Run dialog by pressing the Windows logo + R keys on your keyboard, type services.msc and then click OK.
2. Double-click on the SysMain service. (click to enlarge screenshot below)
3. To Enable SuperFetch
a. From the SysMain Properties dialog, select Automatic from the drop-down menu, click Start under the Service status and then click OK.
4. To Disable SuperFetch
a. From the SysMain Properties dialog, select Disabled from the drop-down menu, click Stop under the Service status and then click OK.
or
3. To Enable SuperFetch
a. From the SysMain Properties dialog, select Automatic from the drop-down menu, and then click OK.
b. From Services, highlight the SysMain service and then click the Start the service link. (click to enlarge screenshot below)
4. To Disable SuperFetch
a. From the SysMain Properties dialog, select Disabled from the drop-down menu, and then click OK.
b. From Services, highlight the SysMain service and then click the Stop the service link. (click to enlarge screenshot below)
You can now close the Services.msc and continue using your computer if you like.
Method Two: How to Enable/Disable SuperFetch in Windows PowerShell
Here is how you can enable and disable Microsoft’s SuperFetch from PowerShell:
1. Open the elevated Windows PowerShell window.
2. To Disable SuperFetch
a. Type the following command and then press Enter on your keyboard to execute the command. (click to enlarge screenshot below)
Stop-Service -Force -Name "SysMain"; Set-Service -Name "SysMain" -StartupType Disabled
3. To Enable SuperFetch
Note: SuperFetch enabled is the default setting in Windows 10.
a. Type the following command and then press Enter on your keyboard to execute the command. (click to enlarge screenshot below)
Set-Service -Name "SysMain" -StartupType Automatic -Status Running
You can now close the elevated Windows PowerShell window and continue using your computer if you like.
Method Three: How to Enable/Disable SuperFetch in Command Prompt
1. Open the elevated Command Prompt window.
2. To Disable SuperFetch
a. Type the following command and then press “Enter” on your keyboard to execute the command. (click to enlarge screenshot below)
sc stop "SysMain" & sc config "SysMain" start=disabled
3. To Enable SuperFetch
Note: SuperFetch being enabled is the default setting in Windows 10.
a. Type the following command and then press “Enter” on your keyboard to execute the command. (click to enlarge screenshot below)
sc config "SysMain" start=auto & sc start "SysMain"
You can now close the elevated Command Prompt window and continue using your computer if you like.
That’s all.
P.C U
March 24, 2019 @ 10:59
I have read that superfetch is also for HDDs and doesn’t work on SSDs because it doesn’t need to. However, my desktop definitely would have an SSD. The SSD is just the common hard drive to have installed and my computer is good and new.
Is there any way to check if I had an SSD or HDD and can you think of a reason why I would have superfetch running if I have an SSD?
Mathew
March 24, 2019 @ 11:03
You can check if you have an SSD or HDD by opening File Explorer (icon on the taskbar) and then clicking on “This PC” from File Explorer’s navigation (left) pane. Now in the right side of the window under Devices and drives will be your SSDs and HDDs.
If your drives are not labeled in File Explorer, then you can head to Search (Windows logo + S keys) and then type “Optimize” and click on the “Optimize drives” result.
Under Media Type, it will show you if you have a Hard Disk Drive (HDD) or a Solid State Drive (SSD).
It is not uncommon for computers to have both an SSD and HDD. The HDD is cheaper and will often give more space than the SSD if you have both. This is to cut costs but also because there is no need to have anything better than an HDD to store your games, videos, pictures, et cetera on.
Also not uncommon is having an HDD on a desktop computer, even if it is quite new. Many computer manufacturers have different tiers (known as ranges) of computers. An HP Pavilion (mid-range) still comes with HDD as the only drive on its desktop range.
One of the upsides of SSDs is that they are better when you’re traveling around. And since a desktop is generally sitting still on a desk for the duration for its life, it hasn’t been perceived as necessary to move away from HDDs on desktops just yet.
Wild W.
March 24, 2019 @ 10:43
I have a very powerful computer already with a GTX1080 and 16 GB of RAM but I am considering upgrading the RAM even more, perhaps to a minimum of 32 GB’s but maybe even more, to help deal with additional processes like superfetch that I don’t want to ever have to think about.
I am wondering if superfetch will be smart enough to begin loading more programs and caches if it knows it has the spare space to do so, and if there is any way to know for sure that it is being limited in how it operates based on if your computer specs are too low for it to do everything that it wants to do? It would b great if superfetch could load more data when I upgrade my computer to help make things even quicker than before.
Also, will it matter if I get multiple amounts of RAM (eg 2 x 8 GB of RAM or just 1 x 16 GB of RAM) for superfetch?
Mathew
March 24, 2019 @ 10:49
There is no point in upgrading the RAM if you don’t need more RAM. Simply having more RAM won’t make things quicker unless you know that you’re short on RAM. That’s a universal rule for RAM no matter what it is you’re doing. The same goes for my servers. There’s no point me spending a lot of money on a server just because it has higher specs if I’m not making use of those specs.
As of today, I don’t think that Superfetch will adjust itself to what it thinks your computer can handle. There are only a limited number of engineers working on the Windows operating system, and while I don’t know for sure, my guess would be that based on all the other things I see them attending to, it would be unlikely that SuperFetch is developed to such great lengths.
Vipul
March 24, 2019 @ 10:19
I had disabled superfetch but it enabled itself and started operating again. I have this same problem with a large number of processes from the task manager. I wish Microsoft would give more options to prevent processes from coming back. It’s a lot better than the Windows XP days when I had a build up of so many processes that it wasn’t funny and slowed my PC way down, but still many of these processes are impossible to remove.
Leon H.
March 24, 2019 @ 09:31
I have a gaming computer that runs on Windows 7 (I still don’t want to upgrade just yet because I paid a lot of money for it) and when I play some games I get a low memory warning from Microsoft. This is telling me that I don’t have much memory left. Whenever I go to look at what the culprit is from Task Manager it is always SuperFetch that is taking up a lot of my RAM.
I don’t really care about having not much RAM left available on the computer, to be honest; what I do care about is these continual warnings that come up on my screen that prevent me from being able to game. It can use all of my RAM as far as I care, it won’t do anything to my computer but disrupt the gameplay the same way I being disrupted already anyway.
Are we sure there isn’t a way to reduce what SuperFetch is doing without disabling it completely?
Mathew
March 24, 2019 @ 09:40
I don’t think it is SuperFetch that is creating these low memory warnings. As far as I know, no Windows operating system to date gives any low memory warnings for physical memory. Task Manager might be having the commit charging limit too close to the commit limit. This can happen even when your computer has a lot of free physical memory.
If you can send me a screenshot of your Task Manager Processes and Performances tabs when this is happening, I’ll post them here and we can discuss them further. (Send to admin@windowstutorials.com).
Thanks
Richard D.
March 24, 2019 @ 04:37
If I go to a file’s Properties dialog and check the option for “Compress contents to save space” will SuperFetch keep the compressed version in memory or will it uncompress the file and then store the uncompressed version of the file in memory instead?
Mathew
March 24, 2019 @ 04:40
It would depend on your file system. NTFS file systems will automatically uncompress files that have been compressed.
SuperFetch probably wouldn’t know if the file has been compressed or not. It may just see the uncompressed file data at all times.
The inner workings of SuperFetch and how long uncompressed data is read into the file system is unknown outside of Microsoft engineers.
Bob
March 24, 2019 @ 04:09
Is it possible to configure SuperFetch rather than just disable it completely?
Mathew
March 24, 2019 @ 04:09
I don’t think so. What it is that you’re looking to achieve? To the best of my knowledge, memory compression is either turned off or on, which is what SuperFetch is.
Bob
March 24, 2019 @ 04:11
SuperFetch slows my boot time by some margin. It tends to happen frequently also. It’s not just a once a week thing. My computer is a pretty good HP all in one desktop that is equipped with an i7 processor, so I have no idea just how high the specs these companies are expecting people to have but this computer is worth several thousand dollars and is virtually brand new. SuperFetch is asking far too much of my computer.
Mathew
March 24, 2019 @ 04:17
I’ve had this same problem. I just wait a little while before starting to use the computer. I haven’t noticed Superfetch as much lately. It’s possible you see it on a consistent basis and then don’t see it later on because Microsoft has updated it and so on. It’s also possible that you see it on a consistent basis for a while but then it goes away by itself, even without being updated.
If you don’t want to wait an extra 30 seconds for your disk usage to drop, then you will have to disable it.
Mathew
March 24, 2019 @ 04:30
SuperFetch is meant to automatically load programs that are used a lot so it saved you time having to load them from scratch. So the idea that SuperFetch itself is causing problems and making people wait is either ironic or not really true. It could be that those programs you frequent would take longer to load without SuperFetch working for you, even if you can see SuperFetch using up a lot of your disk.
How sure are you that your computer would be usable even if Task Manager didn’t say that SuperFetch was using up a lot of your memory? You might want to double check that when you disable it that it is actually making your computer quicker to use or else it definitely won’t be doing you any favors.
Your best bet is t leave SuperFetch on unless you’re absolutely sure that it is creating an issue that you need to solve. Hitting the 100% memory limit isn’t harming your computer.
Also, having a computer with an i7 processor doesn’t automatically mean that you have a computer with a lot of memory. Generally speaking, you get all high specs together but there are also different tiers of devices. You might have more of a mid-range computer with high specs which include an i7 processor but not heaps of memory.