SVCHOST.EXE進程占用高怎么辦?揪出背后的罪魁禍首

2009/7/7 13:40:53    編輯:Windows7之家 - Mary Jane     字體:【

Win7之家www.afsion.com.cn):SVCHOST.EXE進程占用高怎么辦?揪出背后的罪魁禍首

 當您運行了Windows任務管理器后,您可能會在“進程”選項卡中看到若干個名稱均為SVCHOST.EXE的進程正在同時運行。而且,這些SVCHOST.EXE可能有一個或若干個占用了較多的系統(tǒng)資源,影響了計算機的工作效率。



SVCHOST.EXE 位于Windows\system32系統(tǒng)文件夾,其文件描述為“Generic Host Process for Win32 Services”。當Windows啟動時,SVCHOST.EXE將自動檢查Windows注冊表的系統(tǒng)服務組成、構(gòu)建系統(tǒng)服務列表,然后將相關(guān) 的.DLL動態(tài)鏈接庫文件加載為具體的運行中的系統(tǒng)服務。因此,我們可以將SVCHOST.EXE看作一個“用于加載系統(tǒng)服務的宿主程序”。

由于每個SVCHOST.EXE進程可能會加載一個或若干個系統(tǒng)服務,直到所有的SVCHOST.EXE將全部系統(tǒng)服務加載完畢,所以我們會在任務管理器 中看到多個SVCHOST.EXE同時運行,這是設(shè)計使然。一般地,Windows XP/Windows Server 2003可能會有不超過六個SVCHOST.EXE同時運行;而Windows Vista/Windows Server 2008/Windows 7會有不少于十個SVCHOST.EXE同時運行。

當您在Windows任務管理器中查看 SVCHOST.EXE進程時,SVCHOST.EXE進程的“用戶名”應該顯示為SYSTEM、LOCAL SERVICE或NETWORK SERVICE。(如果在任務管理器中看不到“用戶名”,請在菜單中選擇“查看”-“列設(shè)置”,選中“用戶名”復選框。)如果某個SVCHOST.EXE 進程的“用戶名”顯示的是用戶帳戶的名稱(例如Administrator),則這個SVCHOST.EXE很可能是冒仿的惡意程序。

另外您需要確認,您看到的SVCHOST.EXE進程的名稱拼寫是否有誤。比如假設(shè)顯示的進程名稱是SVCH0ST.EXE(用數(shù)字0替換了字母O),則 很可能是冒仿的惡意程序;再比如進程的名稱雖然是SVCHOST.EXE,但此進程卻沒有位于Windows\system32(Windows Vista以上版本的任務管理器可以查看進程所在的文件夾路徑),則也可能是冒仿的惡意程序。

由于SVCHOST.EXE是加載系統(tǒng)服務的宿主進程,所以您如果發(fā)現(xiàn)某SVCHOST.EXE進程占用的系統(tǒng)資源較多,即表明通過這個 SVCHOST.EXE進程加載的系統(tǒng)服務占用的系統(tǒng)資源較多。您首先需要確定通過這個SVCHOST.EXE進程加載的系統(tǒng)服務具體是什么,然后根據(jù)計 算機的實際情況決定是否關(guān)閉相應的系統(tǒng)服務、以釋放服務占用的系統(tǒng)資源,這樣SVCHOST.EXE即可釋放相應的系統(tǒng)資源。

雖然大多數(shù)系統(tǒng)服務只有在遇到故障時才會占用較高的系統(tǒng)資源,但某些特殊的服務即使是正常工作狀態(tài)也將消耗較多系統(tǒng)資源。例如Automatic Updates自動更新服務,當自動更新在后臺搜索可用的系統(tǒng)更新程序時必將占用較高的資源,這是設(shè)計使然而不是故障。

判斷一個SVCHOST.EXE加載了哪些系統(tǒng)服務有兩種方法

方法一:

  1. 在Windows任務管理器的“進程”選項卡中查看占用資源較高的SVCHOST.EXE進程對應的PID,將PID記下。(如果在任務管理器中看不到“PID”,請在菜單中選擇“查看”-“列設(shè)置”,選中“PID”復選框。)

  2. 以管理員權(quán)限運行命令提示符(CMD.EXE),在命令提示符中執(zhí)行:

    TASKLIST –SVC

    您將看到類似如下所示的結(jié)果:

    圖像名                         PID                       服務
         SVCHOST.EXE             1104                     DcomLaunch,TermServices
         SVCHOST.EXE             1188                     RpcSs
         ……
  3. 對 照您在任務管理器中看到的SVCHOST.EXE的PID,在上述結(jié)果中查找對應的 SVCHOST.EXE。例如,假設(shè)您在任務管理器中看到PID為1188的SVCHOST.EXE占用了較多系統(tǒng)資源,而TASKLIST –SVC的結(jié)果顯示PID為1188的SVCHOST.EXE加載的服務是RpcSs,即表明RpcSs服務(Remote Procedure Call (RPC) 服務)占用了較高的系統(tǒng)資源。

方法二:

  1. 在microsoft.com下載系統(tǒng)工具Process Explorer:

    http://www.microsoft.com/technet/sysinternals/Utilities/ProcessExplorer.mspx (http://www.microsoft.com/technet/sysinternals/Utilities/ProcessExplorer.mspx)

  2. 運行Process Explorer,在進程列表中找到占用系統(tǒng)資源較多的SVCHOST.EXE進程,右鍵單擊選擇Properties(屬性),切換至Services(服務)選項卡,在這里即可查看SVCHOST.EXE進程加載的系統(tǒng)服務是什么。

     

最后特別推薦3000萬用戶的選擇,軟媒魔方專解Windows7難題,是Win7系統(tǒng)優(yōu)化首選利器: