SysMain とは? Windows で無効にすべき?
SysMain は、以前は Superfetch と呼ばれていた Windows のサービスです。どのプログラムを使うかを観察し、その実行に必要なものをメモリに用意しておくことで、起動を速くします。タスク マネージャーでは サービス ホスト: SysMain と表示されます。サインイン直後に短時間ディスクや CPU を使うのは正常です。長い間高いままなら、停止して試すことができ、高速な SSD の PC ではほとんど違いに気づかないかもしれませんが、まず試してみる手順であって、どの PC でも速くなる調整ではありません。
これは何か
このサービスは svchost.exe の中で動きます。Windows 11 のテスト用 ThinkPad では、次のように見えました。
Name: SysMain Status: Running StartType: Automatic
Path: C:\Windows\system32\svchost.exe -k LocalSystemNetworkRestricted -p
Microsoft の Windows Server 2016 向けサービスガイドは、これを Superfetch という名前で載せ、説明は "Maintains and improves system performance over time"、推奨は "No guidance" としています。つまりこのガイドは、無効にするよう求めてもいなければ、警告もしておらず、常にオフにすべきというよくある主張の裏付けにもなりません。
本当に原因か確かめる
Ctrl + Shift + Escでタスク マネージャーを開き、プロセス に移動して ディスク で並べ替えます。- サービス ホスト: SysMain を展開するか、PowerShell で調べます。
Get-Service SysMain | Select-Object Status, StartType
Get-Process -Id (Get-CimInstance Win32_Service -Filter "Name='SysMain'").ProcessId | Select-Object Id, CPU, WorkingSet64
- 起動後や大きな更新の後は、この処理が想定される時間なので、10 分から 15 分待ちます。
- ほかに何が忙しいかも見ます。ほぼ満杯のドライブや古いハードディスクでは、多くのものが SysMain のせいに見えます。ディスク使用率 100%を見てください。
| 見えるもの | 通常の意味 | 試すこと |
|---|---|---|
| サインイン後の数分間は忙しい | 通常の準備 | 待つ |
| ハードディスクで長時間ディスクが 100% | ドライブが追いつかない | サービスを止めて試し、SSD も検討する |
| SSD で一日中忙しい | 珍しい。ほかの原因かもしれない | 再起動し、更新をインストールしてから試す |
| メモリが キャッシュ済み と表示される | 空きメモリの通常の利用 | 何もしない。必要になれば Windows が解放する |
| ゲームや動画編集で遅れる | ほかの原因の可能性 | 数日間サービスを止めて試す |
停止する方法と元に戻す方法
まず、スタートアップの種類は変えずに停止します。再起動すると戻るので、安全な試し方です。PowerShell を管理者として実行します。
Stop-Service SysMain
はっきり効果があるなら、再起動後もオフのままにします。
Set-Service SysMain -StartupType Disabled
Stop-Service SysMain
元に戻すには次のようにします。
Set-Service SysMain -StartupType Automatic
Start-Service SysMain
services.msc でも操作でき、そこでは SysMain と表示されます。数日間 PC を使ってみて、アプリの起動が遅くなったり、ディスクが落ち着かなかったりしたら、元に戻してください。
やってはいけないこと
- チューニング一覧に書いてあったからという理由で無効にしないでください。測定できた症状がなければ、効果があったかどうか分かりません。
- メモリ不足の対策として無効にしないでください。キャッシュされたメモリは、何かが必要とすれば返されます。メモリ使用率が高いを見てください。
- それに合わせて
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 のよくあるプロセスの役割を見てください。
よくある質問
SysMain とは何ですか?
以前は Superfetch と呼ばれていた Windows のサービスです。よく使うプログラムのデータをメモリに用意しておき、起動を速くします。
SysMain を無効にしても安全ですか?
はい。いつでもオンに戻せて、Windows は問題なく動きます。特にハードディスクでは、アプリの起動が少し遅くなることがあるので、前後で測ってください。
サービス ホスト: SysMain がディスクを多く使うのはなぜですか?
起動直後の短時間の使用は想定内です。100% が長く続くのは、ハードディスクやほぼ満杯のドライブで最も多く、そこでは何でも遅く見えます。
SSD では SysMain を無効にすべきですか?
問題を測定できたときだけです。SSD で無効にするよう勧める公式の助言はなく、正常な SSD では問題が出ることはまれです。
SysMain と Superfetch は同じものですか?
はい。古いガイドは Superfetch という名前を使っています。現在 Windows はこのサービスを SysMain と表示します。