本帖最后由 ksdb11549517 于 2010-7-17 19:30 編輯 編號:002 病患姓名:系統(tǒng)資源 癥狀:經常無緣無故出現CPU占用100%的情況 初步診斷:系統(tǒng)資源占用得高,有很多種可能性,但最常見的故障來自于Svchosts.exe,它是一個容器,承載著各種系統(tǒng)服務,所以Svchost.exe突然出現問題,那就一定是有系統(tǒng)服務出了故障。 小知識——Svchost.exe有什么作用 Svchost.exe是NT內核操作系統(tǒng)(Windows 2000/XP/2003都屬于NT內核操作系統(tǒng))獨有的進程,“Svchost”其實就是“Service Host”(服務宿主)的縮寫。微軟官方對它的定義是:Svchost.exe是從動態(tài)鏈接庫(DLL)中運行的服務的通用主機進程名稱,通俗講,它就是一個服務裝載器。大家可以把每個服務想象成一張音樂CD,而Svchost.exe就是用來播放這種CD的CD機。每個Svchost.exe進程都包含多個系統(tǒng)服務,同時系統(tǒng)中也有多個Svchost.exe進程(Windows XP會有4~6個Svchost.exe進程,而Windows 2000通常只有2個Svchost.exe進程,這個數字都是根據已啟動的服務的情況而定的)。 小提示 點擊“開始→運行”,在運行框中輸入“CMD”回車,然后在打開的命令行窗口中輸入“Tasklist /svc”(不含引號)命令,可以更直觀地看到每個Svchost.exe進程裝載的服務名稱列表。 處方:用Process Explorer找出藏在Svchost.exe里的壞蛋 實際上Svchost.exe中的服務都是進程中的DLL模塊,所以用進程查看工具找出進程中有問題的線程模塊,就能找到問題所在。 第一步:找出有問題的進程。下載并安裝Process Explorer(下載地址:http://www.newhua.com/soft/19289.htm),運行后在主界面中找到CPU占用率較高的Svchost.exe進程,將鼠標懸停在這個進程項上時,會顯示出這個進程中具體包含哪些系統(tǒng)服務(見圖1)。 ![]() 第二步:找出有問題的線程。右擊有問題的進程項,選擇“Properties”(屬性),在彈出的屬性框中切換至Threads選項卡,就能看到下方列表中CPU占用率最高的線程(見圖2),選中它后點擊“Suspend”(暫停),如果這時系統(tǒng)的高CPU占用現象得到緩解,則說明已經確診了,再點擊“Stack”(堆棧),可以看到大多數占用CPU的操作都源于wuaeng.dll的文件(見圖3)。 ![]() ![]() |