# SysMain 是什么，Windows 上要不要禁用

SysMain 就是以前叫 Superfetch 的 Windows 服务，它观察你常用哪些程序，把需要的东西提前放进内存，让程序打开得更快，在任务管理器里显示为“服务主机: SysMain”。登录后短时间占磁盘或 CPU 是正常的，如果长时间很高，可以停掉测试，用快速 SSD 的电脑上可能没什么差别，但它是一次要先做的测试，不是能让每台电脑变快的优化。

## 它是什么

这个服务运行在 `svchost.exe` 里，一台装 Windows 11 的 ThinkPad 测试机上是这样的：

```text
Name: SysMain   Status: Running   StartType: Automatic
Path: C:\Windows\system32\svchost.exe -k LocalSystemNetworkRestricted -p
```

微软给 Windows Server 2016 写的 [服务指南](https://learn.microsoft.com/en-us/windows-server/security/windows-services/security-guidelines-for-disabling-system-services-in-windows-server) 用 Superfetch 这个名字列出它，说明是“Maintains and improves system performance over time”，建议一栏是“No guidance”。这份指南既没有让你禁用，也没有警告不能禁用，“应该一直关掉”这个常见说法在这里找不到依据。

## 先确认真的是它

1. 按 `Ctrl + Shift + Esc` 打开任务管理器，到“进程”，按“磁盘”排序。
2. 展开“服务主机: SysMain”，或者用 PowerShell 查：

```powershell
Get-Service SysMain | Select-Object Status, StartType
Get-Process -Id (Get-CimInstance Win32_Service -Filter "Name='SysMain'").ProcessId | Select-Object Id, CPU, WorkingSet64
```

3. 开机或大更新后给它十到十五分钟，这段时间忙是预期之内的。
4. 留意还有什么在忙，磁盘快满或者老机械硬盘上，很多问题看起来都像是 SysMain 造成的，可以看 [磁盘占用 100%](/zh/windows/blog/windows-disk-100-percent)。

| 看到的情况 | 通常意味着 | 怎么试 |
| --- | --- | --- |
| 登录后忙几分钟 | 正常准备 | 等一等 |
| 机械硬盘长时间 100% | 硬盘跟不上 | 停掉服务测试，也可以考虑换 SSD |
| SSD 上一整天都很忙 | 不常见，可能另有原因 | 重启、装更新，再测试 |
| 内存显示为“已缓存” | 正常利用空闲内存 | 不用管，需要时 Windows 会释放 |
| 游戏或视频工作卡顿 | 可能是别的原因 | 停掉服务测试几天 |

## 怎么停掉，怎么恢复

先只停止，不改启动类型，重启后它会回来，这是安全的测试，用管理员身份运行 PowerShell：

```powershell
Stop-Service SysMain
```

如果明显有帮助，再让它重启后也保持关闭：

```powershell
Set-Service SysMain -StartupType Disabled
Stop-Service SysMain
```

恢复的方法：

```powershell
Set-Service SysMain -StartupType Automatic
Start-Service SysMain
```

在 `services.msc` 里也能操作，名字就是“SysMain”。用几天看看，如果 App 打开变慢，或者磁盘并没有变安静，就打开回去。

## 不要这样做

- 不要因为优化清单这么写就禁用它，没有量过症状，就没法知道有没有用。
- 不要拿它解决内存不足，缓存的内存在需要时会还回来，可以看 [内存占用高](/zh/windows/blog/windows-high-memory-usage)。
- 不要顺手删 `C:\Windows\Prefetch`，Windows 会重建，在那之前程序启动更慢。
- 不要见到“服务主机”就停，每个托管的服务都不一样，有的管着网络和声音。

## 它是病毒吗

SysMain 是 Windows 服务，不是单独的程序，运行在 `C:\Windows\System32` 里真正的 `svchost.exe` 中。从其他文件夹运行的 `svchost.exe`，或者拼写相近的文件，才要用 Microsoft Defender 扫描。

## Mole 能做什么

Mole for Windows 的“状态”页把会话 0 里的服务主机折叠成一行。这一行菜单里的“为什么在运行？”只写出前两个服务，最忙的副本排在前面，其余的只给个数，所以 SysMain 可能藏在这个数字里。它还会列出占用最高的几个副本，点开一个能看到这个副本托管的服务。单个服务不会单独拆出来，想看 SysMain 自己的数字还是用任务管理器。Mole 把服务主机标为系统进程，不提供“终止”和“强制退出”。它的启动项列表不包含从 Windows 文件夹托管的服务，所以 SysMain 不会出现在那里，Mole 也没有控制它的开关。想了解更多可以看 [Windows 常见进程](/zh/windows/blog/windows-processes-explained)。

## 常见问题

### SysMain 是什么？

它是以前叫 Superfetch 的 Windows 服务，把常用程序的数据提前放进内存，让程序打开得更快。

### 禁用 SysMain 安全吗？

安全，随时可以打开回去，Windows 也能照常工作，只是 App 可能打开得慢一点，机械硬盘上尤其如此，所以前后都量一下。

### “服务主机: SysMain”为什么占这么多磁盘？

开机后短时间占用是预期之内的，长时间 100% 多见于机械硬盘或快满的磁盘，这时什么都可能显得慢。

### SSD 要禁用 SysMain 吗？

能量到问题才需要，官方没有建议在 SSD 上禁用，健康的 SSD 上它很少造成麻烦。

### SysMain 和 Superfetch 是一回事吗？

是的，旧教程用 Superfetch 这个名字，现在 Windows 里的服务名是 SysMain。


Canonical: https://mole.fit/zh/windows/blog/sysmain-high-disk-windows
