Is the Service Host: Superfetch (SysMain) causing high disk usage in Windows 10? What is it and can you disable it? What you need to know.
Windows 10 is a definite improvement over previous versions in many ways—but it can also feel slow and sluggish when it isn’t configured properly. Of the many ways to improve Windows 10 performance, there’s one lesser-known feature that you should know about: Superfetch is now referred to as SysMain after the Windows 10 1809 update.
In this article, you’ll learn everything you need to know about what Superfetch (SysMain) is, how it works, why it might be problematic, and how to disable it if it’s causing issues.
What Is Superfetch (SysMain)?
Superfetch is a feature that was introduced back in Windows Vista. The official description of the Superfetch service says that it “maintains and improves system performance over time,” but that’s vague and doesn’t explain the whole story.
It sits quietly in the background, constantly analyzing RAM usage patterns and learning what kinds of apps you run most often. Over time, Superfetch marks these apps as “frequently used” and preloads them into RAM ahead of time.
Superfetch shows up as “Service Host: SysMain” in the Windows Task Manager. The idea is that when you do want to run the app, it will launch much faster because it’s already preloaded in memory.
By default, Superfetch is designed to take up all your available RAM space with preloaded apps. Don’t worry: it only deals with unused memory. As soon as your system needs more RAM (e.g., to load an app that wasn’t preloaded), it relinquishes the needed memory as necessary.
Note that Superfetch is not the same thing as Prefetch, the preloading memory manager introduced back in Windows XP. Superfetch is actually the successor to Prefetch. What’s the difference? Prefetch did not analyze usage patterns over time and adjust its preloading parameters accordingly.
Is Superfetch (SysMain) Really Necessary?
For the most part, Superfetch is useful. If you have a modern PC with average specs or better, Superfetch most likely runs so smoothly that you won’t even notice it. There’s a good chance Superfetch is already running on your system right now, and you didn’t even know.
But there are some “problems” that can arise with Superfetch (SysMain):
- Since Superfetch is always running in the background, the Superfetch service itself is always using some CPU and RAM.
- Superfetch doesn’t eliminate the need to load apps into RAM. Rather, it relocates the loading to an earlier time. Whenever that loading happens, your system still experiences the same slowdown as if you were launching the app without Superfetch.
- System startup can be sluggish because Superfetch is preloading a bunch of data from your HDD to RAM. If your HDD runs at 100% for a few minutes every time you start or restart your computer, Superfetch could be the culprit.
- The performance gains of Superfetch may be unnoticeable when Windows 10 is installed on an SSD. Since SSDs are so fast, you don’t really need preloading. If this interests you, check out our guide to moving Windows from HDD to SSD.
Superfetch has also been known to cause performance issues while gaming, particularly on systems with 4GB of RAM or less. It’s unclear why this happens because it doesn’t occur for everybody, but we suspect it has to do with RAM-heavy games that constantly request and free up memory, which may cause Superfetch to load and unload data constantly.
Is it safe to disable Superfetch? Yes! There is no risk of side effects if you decide to turn it off. We recommend that if your system is running well, leave it on. If you have high HDD usage issues, high RAM usage, or degraded performance during RAM-heavy activities, then try turning it off and see if it helps. If it does, keep it off. Otherwise, turn it back on.
Note: To boost performance on a RAM-sparse system, we recommend tweaking the Windows virtual memory limit and tweaking Windows visual effects. You can also try these tips for faster startup and shutdown.
How to Disable Superfetch (SysMain) on Windows 10
To reiterate, we don’t recommend disabling Superfetch except as a troubleshooting measure for the potential issues mentioned above. Most users should keep Superfetch enabled because it does help with overall performance. If you aren’t sure, try turning it off. If you don’t notice any improvements, turn it back on.
Again, Superfetch is referred to as SysMain in Windows 10. So that’s what users should be looking for when disabling it.
Using the Services App
- Open the Start Menu, search for services, then launch the Services app. Alternatively, open the Run prompt by pressing Windows key + R, then type services.msc and click OK.
- Scroll down until you see SysMain, right-click on it, and click Stop. Superfetch is now disabled.
- Still, in the Services app, right-click on SysMain and select Properties. Under the General tab, look for Startup type and change it to Disabled. (Or Manual if you’d like the option to turn it on when you need it.)
Using the Registry Editor
The Services app is the preferred method for this, but if it doesn’t work for some reason, you can always edit the registry key directly. Before you do this, make sure you back up the registry in case something goes wrong.
Please note that it’s important to create a System Restore point before making any Registry changes. You can revert to this restore point in case of any mishap.
Creating a Restore Point
- In the Start menu search bar, type Create a restore point and click on it from the search results.
- If the System Restore button is greyed out, it means that System Protection is disabled.
- To enable System Protection, click on the C: drive in the same window. Then click on Configure and click on Turn on System Protection. Click OK.
- To create a Restore Point, simply click on Create and enter a name for the Restore Point.
Disabling Superfetch (SysMain)
- In the Start menu search bar, search for regedit, then select it from the results. Alternatively, open the Run prompt by pressing Windows key + R, then type regedit and click OK.
Find the SysMain key. Using the left sidebar, navigate to the following:
HKEY_LOCAL_MACHINE System CurrentControlSet Services SysMain
- Disable SysMain. In the section on the right, double click on Start and set Value data to 4. Save changes and reboot your computer.
Using Command Prompt
The fastest way to disable Superfetch and feel like a Windows power user while doing so is to use the Command Prompt.
- In the Start menu search bar, type cmd and right-click on Command Prompt > Run as administrator.
- In the console, type: sc stop “SysMain” and press Enter.
- After this, type: sc config “SysMain” start=disabled and press Enter.
- Close Command Prompt and reboot your computer.
Other Windows 10 Features You Can Disable
Superfetch isn’t the only example of a feature that might be better off disabled. Tons of other features are better left disabled due to the performance trade-off.
Image Credit: AntonioGuillemF/Depositphotos
Did you know that Windows 10 has lots of optional features that you can enable? Let’s look at what they do and how to enable them.
About The Author