就前兩天在使用電腦的時候,突然發現電腦緩慢,查看了一下windows工作管理員,發現CPU被佔用99%,查看了一下程序,發現是一個叫svchost.exe的程序佔用了,於是直接結束了這個程序,結束程序後,發現無法上網了(上不了網問題是因為我們結束了這個關鍵程序svchost.exe)。於是我又重新啟動了一下電腦,在沒上網的時候發現svchost.exe執行正常,沒有佔用多餘資源,CPU資源佔用也正常,但是我連線網路後,過了一小會又發現svchost.exe佔用了大量的CPU資源,導致系統很慢,剛開始以為是中病毒了,趕緊重新安裝了一下系統。
系統安裝完了,更新補丁,由於網路速度不是很快,於是我先取消了更新補丁(需要先上網查點東西),過了一會,老問題重現了,svchost.exe又開始佔幾乎100%的CPU資源了,到這裡我突然想到,是不是因為自動更新的原因?因為我上次出現這個問題的時候也是取消了自動更新安裝程序,於是我打開了自動更新的服務:開啟控制面板管理工具服務,找到"Automatic Updates",“Automatic Updates”這個服務的描述是:啟用下載和安裝 Windows 更新。如果此服務被禁用,這臺計算機將無法使用“自動更新”功能和 Windows Update 網站。可執行檔案路徑為:“C:\WINDOWS\system32\svchost.exe -k netsvcs”目前狀態是已啟動,於是我直接停止了該服務,發現svchost.exe佔用資源情況正常了,問題得到了解決。問題解決後,我在網路上也轉了一下,發現遇到這問題的人還挺多,大概現象就是:
1.電腦啟動執行幾分鐘後 svchost.exe就會佔系統cpu資源接近100%,一般99%左右。
2.當電腦拔掉網線後,svchost.exe就恢復正常了,但是重連上網後一會兒:svchost.exe又佔cpu資源的99%;
下面總結一下解決方法:
1.首先需要使用防毒軟體排除病毒的影響。
2.清空C:\WINDOWS\SoftwareDistribution 目錄下所有的檔案重啟機器即可。(C:\WINDOWS\SoftwareDistribution是Windows update服務的臨時檔案存放目錄)
如果機器提示檔案正在使用("Automatic Updates"服務正在執行)無法刪除相應目錄:則想辦法開啟控制面板管理工具服務,找到"Automatic Updates",停止啟動狀態,設定成手動啟動, 重啟後再刪除 C:\WINDOWS\SoftwareDistribution。問題就解決了。 然後再開啟控制面板>管理工具服務,找到"Automatic Updates",恢復成自動啟動重啟。 重啟後讓系統認真的把補丁安裝一下,不要再取消安裝操作了,完成系統自動更新後應該就不會再出現這個問題了。
再來說說什麼是“svchost.exe”:svchost.exe是一個屬於微軟Windows作業系統的系統程式,微軟官方對它的解釋是:Svchost.exe 是從動態連結庫 (DLL) 中執行的服務的通用主機程序名稱。這個程式對系統的正常執行是非常重要,而且是不能被結束的。簡單的說沒有這個服務機器幾乎就上不了網了。很多應用服務都是以來於這個介面RPC的,如果發現這個程序佔了太多的CPU資源,造成svchost佔系統CPU100%的原因並非svchost服務本身:以上的情況是由於Windows Update服務下載/安裝失敗而導致更新服務反覆重試造成的。而Windows的自動更新也是依賴於svchost服務的一個後臺應用,從而表現為svchost.exe負載極高。常發生這類問題的機器一般是上網條件(尤其是去國外網站)不穩定的機器,比如家裡的父母的機器,往往在安裝機器幾個月以後不定期發生,每個月的第二個星期是高發期:因為最近幾年MS很有規律的在每個月的第二個星期釋出補丁程式)。其實都是軟體太聰明惹的禍,svchost.exe的問題都是應用遇到失敗/例外情況後自動重試造成的,微軟本想為使用者節省時間的設計,但是重試的頻度過高反而導致了CPU被大量佔用,電腦執行緩慢。