【轉】svchost.exe佔用CPU 100%的解決方法

 

現象:

  1. 機器啓動運行幾分鐘後 svchost.exe就會佔系統cpu資源的100%
  2. 拔掉網線就好了,重連上網後一會兒:svchost.exe又佔cpu資源的99%;

解決:

假設你已經使用了免費殺毒軟件排除了病毒和已經使用防間諜軟件排除了惡意軟件的影響:
想辦法清空C:\WINDOWS\SoftwareDistribution 目錄下所有的文件重啓機器即可
。(C:\WINDOWS\SoftwareDistribution是Windows update服務的臨時文件存放目錄)

如果機器提示文件正在使用("Automatic Updates"服務正在運行)無法刪除相應目錄:

  • 則想辦法打開控制面板==>管理工具==>服務,找到"Automatic Updates",設置成手動啓動,
  • 重啓後再刪除 C:\WINDOWS\SoftwareDistribution。問題就解決了。
  • 然後再打開控制面板==>管理工具==>服務,找到"Automatic Updates",恢復成自動啓動重啓。

注意:重啓後最好在上網條件比較好的地方讓系統順利完成一次系統自動更新。

推廣: 遇到類似問題的應該挺多的,如果你也發現這個方法有用,請將 http://www.chedong.com/blog/archives/001286.html
這個鏈接加到你的blog裏。
html代碼: <a xhref="http://www.chedong.com/blog/archives/001286.html">svchost.exe</a>

原因分析:

先說說什麼是svchost.exe:簡單的說沒有這個RPC服務,機器幾乎就上不了網了。很多應用服務都是依賴於這個RPC接口的,如果發現這個進程佔了太多的CPU資源,直接把系統的RPC服務禁用了會是一場災難:因爲連恢復這個界面的系統服務設置界面都無法使用了。恢復的方法需要使用註冊表編輯器,找到 HKEY_LOCAL_MACHINE >> SYSTEM >> CurrentControlSet >> Services >> RpcSs, 右側找到Start屬性,把它的值改爲2再重啓即可

造成svchost佔系統CPU 100%的原因並非svchost服務本身:以上的情況是由於Windows Update服務下載/安裝失敗而導致更新服務反覆重試造成的。而Windows的自動更新也是依賴於svchost服務的一個後臺應用,從而表現爲svchost.exe負載極高。 常發生這類問題的機器一般是上網條件(尤其是去國外網站)不穩定的機器,比如家裏的父母的機器,往往在安裝機器幾個月以後不定期發生,每個月的第二個星期是高發期:因爲最近幾年MS很有規律的在每個月的第二個星期發佈補丁程序)。上面的解決方法並不能保證不重發作,但是爲了svchost文件而每隔幾個月重裝一次操作系統還是太浪費時間了。

教訓:spoolsv.exe和svchost.exe的問題都是應用遇到失敗/例外情況後自動重試造成的,本想爲用戶節省時間的設計,但是重試的頻度過高反而導致了和病毒一樣的效果。

參考資料:

作者:車東 發表於:2007-04-15 12:04 最後更新於:2008-01-29 09:01
版權聲明:可以任意轉載,轉載時請務必以超鏈接形式標明文章和作者信息及本版權聲明
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章