為什麼我的 Windows 10 系統會有很多 SVCHOST 程序
為什麼我的 Windows 10 系統會有很多 SVCHOST 程序
有不少網友反應自己 Windows 10 的系統中會執行很多 svchost.exe 程序,懷疑自己的系統有問題?!其實相對於現在來講,這是一個正常的現象。
因為微軟自 Windows 10 1703 開始重新設計了 Windows 服務的執行機制。對於記憶體超過 3.5GB 的 Windows 10 系統,其執行的服務將以獨立執行的方式通過 Svchost.exe 程序執行。如果你的記憶體少於 3.5GB,那麼這些服務將會自動分配到共享的 Svchost.exe 程序中執行,這也是 1703 版本以前 Windows 服務預設的執行方式。
分離 Svchost 執行服務所帶來的好處是顯而易見的:
- 通過將關鍵網路服務與主機中的其他非網路服務的隔離,並在網路元件崩潰時新增無縫恢復網路連線的能力,提高了可靠性。
- 通過消除與隔離共享主機中的行為不當服務相關的故障排除開銷,降低了支援成本。
- 通過提供額外的服務間隔離來提高安全性。
- 通過允許每項服務設定和許可權來提高擴充套件性。
- 通過按服務CPU,I/O和記憶體管理改進資源管理,並增加清晰的診斷資料(報告每個服務的CPU,I/O和網路使用情況。)
在過去,Windows 將服務與匹配的安全性要求相結合來確定共享的服務主機組。
- 本地服務
- 本地服務無網路
- 本地服務網路受限制
- 本地系統
- 本地系統網路受限制
- 網路服務
下圖是分離和共享服務主機(Svchost.exe)程序的執行對比。
雖然分離機制已經在 1703 及之後版本的 Windows 10 上應用,但是某些服務仍將繼續通過分組方式共享服務主機(Svchost.exe)程序。例如,Windows 防火牆(mpssvc - Windows Defender Firewall)和基本篩選引擎(BFE - Base Filtering Engine),遠端過程呼叫(RpcSs - Remote Procedure Call)和 RPC 終結點對映器(RpcEptMapper - RPC Endpoint Mapper)。
如果需要識別這些分離和繼續分組的服務,除了可以通過工作管理員的程序選項卡來檢視 Service Host(服務主機)資訊意外,還可以通過詳細資訊選項卡查閱 svchost.exe 的命令列。
此外微軟也提供了通過登錄檔項檢查的辦法,開啟登錄檔編輯器定位到“ HKLM\SYSTEM\CurrentControlSet\Services ”下,檢視每個服務下“ SvcHostSplitDisable ”的值即可,當值為“1”時則表示服務禁止拆分。