svchost.exe為什么會占用那么多CPU?

svchost.exe是Windows操作系統里專門用來運行動態鏈接庫(DLL)的前導程式。這個程式不能被終止運行,對系統的正常運行很重要。

它正確的位置應該位于:

  • 32位系統,C:\\Windows\\system32目錄下;
  • 64位系統,C:\\Windows\\SysWOW64目錄下;

如果在其他地方看到,那么很可能是病毒程式。

Svchost.exe是Windows服務主程式(服務宿主)

有很多網友反映無法在Windows的任務管理器中查看Svchost,因為它不是用戶進程,而是為用戶SYSTEM、LOCAL SERVICE、NETWORK SERVICE等提供服務的系統進程。

  • Windows 7需要選中“進程選項卡”下方的“顯示所有用戶的進程”才能看到多個Svchost。
  • Windows 10需要選中“詳細資訊”才能看到多個svchost。

服務指的是保障系統正常運行的一系列底層與后臺任務流程。svchost.exe作為其宿主,通過調用不同的系統模塊,執行不同的命令行來執行不同的任務。可以認為它是一個空殼,通過外部的、模塊化的、分散化的內容來發揮作用。

舉個例子:

同時按住鍵盤的“Win”+“R”調出“運行”窗口,然后輸入“services.msc”打開“服務”管理界面。

隨機的打開一個服務,如下圖:

注意觀察可執行文件的路徑及其后面的參數。但并非所有的服務都通過svchost.exe來執行。如下圖:

由此可見,Windows下的服務通常來說都發揮著極其重要的作用,但并非完全不可或缺,svchost.exe也不例外。

正常的情況下,svchost.exe是不會長時間的占用大量的CPU

如果svchost.exe長時間占用大量的CPU,說明系統出現了問題。我們可以通過排查的方法找到問題所在。步驟如下:

1、在任務管理器中找到占用CPU資源較大的svchost.exe,如下圖

2、然后滑鼠點擊右鍵,選擇“轉到服務”,如下圖:

3、根據服務的必要性和重要性選擇是否結束相應的svchost.exe或停止相應的服務,來進行下一步的分析。

具體原因可能多種多樣,要善于運用windows自帶的“資源監視器”、“事件查看器”和搜索引擎找到解決的辦法。

“資源監視器”打開入口:控制面板>系統和安全>管理工具

“事件查看器”打開入口:控制面板>系統和安全>管理工具

一般來說,svchost.exe長時間占用大量的CPU,可能出現了以下幾種情況:

  • 運行某個程式出現了死循環;
  • 某個程式占用CPU資源較大(比如系統更新時);
  • 網路資源占用過大;
  • 中毒;
  • 其他問題;

所以往往我們沒有辦法通過排除法來分析出問題的原因時,重裝一下系統就好了。如果確實沒有辦法要重裝系統,重裝系統前一定要備份好重要資料。

總之,具體問題要具體分析,自己確實解決不的,要向專業的朋友進行求互。


以上個人淺見,歡迎批評指正。

認同我的看法,請點個贊再走,感謝!

喜歡我的,請關注我,再次感謝!

2 条回复 A文章作者 M管理員
  1. 希望能把各進程的作用介紹一下。

  2. 有兩個1M以下的這種進程,停掉完全不受影響。[可愛]