現象:
- 機器啟動運行幾分鐘後 svchost.exe就會佔系統cpu資源的100%
- 拔掉網線就好了,重連上網後一會兒: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裡。
原因分析:
先說說什麼是svchost.exe:簡單的說沒有這個服務機器幾乎就上不了網了。很多應用服務都是以來於這個介面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的問題都是應用遇到失敗/例外情況後自動重試造成的,本想為使用者節省時間的設計,但是重試的頻度過高反而導致了和病毒一樣的效果。
參考資料:
- svchost.exe CPU Usage 100%,
when my Windows using Automatic Update
- svchost.exe 吃掉所有 CPU 儋源
- 微軟官方說明: 使用“自動更新”搜尋更新或對使用 Windows Installer 的應用程式應用程式更新時,遇到涉及
Svchost.exe 進程的問題
- Windows Update使SVCHOST.exe的問題跟蹤