SVCHOST.EXE進(jìn)程占用高怎么辦?揪出背后的罪魁禍?zhǔn)?/h1> 2009/7/7 13:40:53    編輯:Windows7之家 - Mary Jane     字體:【

Win7之家afsion.com.cn):SVCHOST.EXE進(jìn)程占用高怎么辦?揪出背后的罪魁禍?zhǔn)?/p>

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



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

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

當(dāng)您在Windows任務(wù)管理器中查看 SVCHOST.EXE進(jìn)程時(shí),SVCHOST.EXE進(jìn)程的“用戶名”應(yīng)該顯示為SYSTEM、LOCAL SERVICE或NETWORK SERVICE。(如果在任務(wù)管理器中看不到“用戶名”,請(qǐng)?jiān)诓藛沃羞x擇“查看”-“列設(shè)置”,選中“用戶名”復(fù)選框。)如果某個(gè)SVCHOST.EXE 進(jìn)程的“用戶名”顯示的是用戶帳戶的名稱(例如Administrator),則這個(gè)SVCHOST.EXE很可能是冒仿的惡意程序。

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

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

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

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

方法一:

  1. 在Windows任務(wù)管理器的“進(jìn)程”選項(xiàng)卡中查看占用資源較高的SVCHOST.EXE進(jìn)程對(duì)應(yīng)的PID,將PID記下。(如果在任務(wù)管理器中看不到“PID”,請(qǐng)?jiān)诓藛沃羞x擇“查看”-“列設(shè)置”,選中“PID”復(fù)選框。)

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

    TASKLIST –SVC

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

    圖像名                         PID                       服務(wù)
         SVCHOST.EXE             1104                     DcomLaunch,TermServices
         SVCHOST.EXE             1188                     RpcSs
         ……
  3. 對(duì) 照您在任務(wù)管理器中看到的SVCHOST.EXE的PID,在上述結(jié)果中查找對(duì)應(yīng)的 SVCHOST.EXE。例如,假設(shè)您在任務(wù)管理器中看到PID為1188的SVCHOST.EXE占用了較多系統(tǒng)資源,而TASKLIST –SVC的結(jié)果顯示PID為1188的SVCHOST.EXE加載的服務(wù)是RpcSs,即表明RpcSs服務(wù)(Remote Procedure Call (RPC) 服務(wù))占用了較高的系統(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. 運(yùn)行Process Explorer,在進(jìn)程列表中找到占用系統(tǒng)資源較多的SVCHOST.EXE進(jìn)程,右鍵單擊選擇Properties(屬性),切換至Services(服務(wù))選項(xiàng)卡,在這里即可查看SVCHOST.EXE進(jìn)程加載的系統(tǒng)服務(wù)是什么。

     

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