Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Windows XP CPU 佔用 100% 深度診斷:dllhost.exe 與 svchost.exe 兩大元凶解析

編輯:Windows XP 系統介紹

CPU 長期佔用 100% 是 XP 系統常見疑難雜症。本文針對兩大高頻進程 dllhost.exe(COM+ 應用程式主機)與 svchost.exe(服務宿主)進行案例式深度剖析,提供從現象確認、根因定位到徹底解決的完整鏈路。

案例一:dllhost.exe 佔滿 CPU —— ASP/Access 死鎖經典模式

現象特徵

  • 伺服器正常 CPU < 75% 且波動;故障時 dllhost.exe 瞬間佔滿 100% 且持平不降。
  • 重啟 IIS 暫時恢復,但隔段時間(小時~天)復發。

根本原因

一個或多個 Access 資料庫(.mdb)在頻繁讀寫中損壞。MDAC 元件嘗試寫入損壞的 .mdb 導致 ASP 執行緒進入 BLOCK 狀態,引發 IIS 工作進程死鎖,所有 CPU 時間被 dllhost.exe 佔用於等待/重試。

診斷與解決流程

  1. 安裝「一流資訊監控攔截系統」→ 啟用「首席檔案檢查官 IIS 健康檢查官」→ 開啟「查找死鎖模組」。
  2. 設定參數:wblock=yes、wblockdir=D:\WebRoot(指定網站根目錄)。
  3. 停止 IIS → 啟動檢查官 → 重啟 IIS。工具將在 Log\LogBlock.htm 記錄最後寫入的 Access 檔案。
  4. 故障復發時停止 IIS,檢查日誌最後 10 筆記錄。重點排查 計數器類 .mdb(如 Count.mdb、Stat.mdb)。
  5. 刪除可疑檔案到回收站 → 重啟 IIS 觀察。若恢復正常,確認該檔為禍首。
  6. 徹底修復:下載該 .mdb → Access 2000「工具→資料庫公用程式→修復資料庫」→ 覆蓋回伺服器。

案例二:svchost.exe 佔滿 CPU —— 木馬/病毒偽裝重災區

排查三大自啟動據點

位置正常值異常判斷
win.ini [Windows]區段run=、load= 等號後為空後接非熟悉路徑/檔名 → 疑似木馬
system.ini [Boot]區段shell=explorer.exeshell=explorer.exe 額外程式 → 後者為木馬
註冊表 HKLM\Software\Microsoft\Windows\CurrentVersion\Run僅系統/常用軟體項目出現不認識 .exe、拼寫偽裝(如 expiorer.exe 缺字母) → 木馬

擴展檢查註冊表其他啟動鍵

  • HKCU\Software\Microsoft\Windows\CurrentVersion\Run
  • HKU\\Software\Microsoft\Windows\CurrentVersion\Run
  • HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce / RunOnceEx
  • HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run

經典病毒案例:Code Red II / VirtualRoot

利用 IIS ISAPI 擴充溢位漏洞(Port 80)傳播,感染機器可被 HTTP GET /scripts/root.exe 完全控制。特徵:svchost.exe 異常佔用 CPU、C:\Windows\System32\root.exe 存在、對外掃描 Port 80。

處方:
① 斷網隔離 → ② 進安全模式刪除病毒檔/註冊表啟動項 → ③ 安裝 IIS 修補程式(MS01-033/MS01-044) → ④ 修改 IIS 預設腳本目錄權限 → ⑤ 部署防火牆封鎖可疑出站連線。

通用排查工具推薦

  • Process Explorer(Sysinternals):查看 svchost.exe 子服務、DLL 載入鏈、TCP 連線。
  • Autoruns:全面掃描所有自啟動點,高亮未簽章/可疑項目。
  • TCPView:即時監控進程網路連線,發現異常對外連線。
  • HijackThis:生成啟動項報告供遠端協助分析。

預防原則

  1. 及時安裝 Windows Update/IIS 修補程式。
  2. 網站目錄權限最小化(寫入權限僅授予必要資料夾)。
  3. 定期備份 Access 資料庫並執行「修復/壓縮」。
  4. 部署主機型 IDS/IPS 監控關鍵進程行為。
Copyright © Windows教程網 All Rights Reserved