Windows10でsvchost.exeのグループ化する

svchostとは

svchost.exeはサービスを提供する実行ファイル、サービスとはユーザがサインインしていなくてもバックグラウンドで動いているプロセス。Windows10のCreators Update (version 1703)からサービス1つにつき1プロセスで起動(分割サービス)するようにしたため多くのサービスがタスクマネージャなどに表示される。ただしこれは常に行われるわけではなくメモリのサイズが3.5Gより大きければ分割サービスになる。3.5G以下の場合は以前のWindowsのようにサービスがグループ化される。グループ化といってもすべてのサービスが1つのプロセスで実行されるわけではなくある程度は分けられる。

分割サービスによりいくつかの利点がある。

  • プロセスで分けられているため1つのサービスに不具合があってもだのサービスに影響しない。
  • 特権などはプロセスごとに持つため設定しやすくなる。
  • CPUの使用率を制限するときもプロセス単位なのでやりやすくなる

ただし、プロセスをたくさん起動するとメモリ効率は悪くなるので、ここでは分割サービスになっているシステムをグループ化に戻す方法を紹介する。

分割サービスの状態:多くのサービスがある

manysvchost
Taskmanager shows many svchost.exe processes

8Gでサービスをプロセスに分けるように設定

レジストリキー:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SvcHostSplitThresholdInKBの値を8Gで設定する。実際の値はキロバイトなので、8388608になる。( = 8 * 1024 * 1024 )

svchost-split-from-8g
The value of the highlighted item is set 8G, if the actual memory is above this value, services will be splitted.

再起動すると反映される。

サービスがグループ化される

svchosts are grouped

サービスがグループ化されてsvnchost.exeの数が減った。

プロセスが実行しているサービスを確認する

Process Explorerでできる。svchost.exeをダブルクリックしてから’Services’タブを表示すると以下のようにサービスの一覧が表示される。

参考リンク

Changes to Service Host grouping in Windows 10

[Windows 10 Fix] Why Too Many Svchost.exe (Service Host) Process Running in Task Manager

Leave a Reply

Your email address will not be published. Required fields are marked *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)