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

CPU 使用率 100% 怎麼辦?兩大經典案例深度剖析:dllhost.exe 與 svchost.exe

編輯:XP 系統應用技巧

工作管理器顯示 CPU 長期 100%,系統嚴重卡頓。這類問題多半由特定進程失控引起。本文深度剖析兩大經典案例——dllhost.exe 與 svchost.exe 佔滿 CPU 的成因、診斷流程與解決方案。

案例一:dllhost.exe 佔用 100% CPU——ASP 應用程式死結

現象

伺服器正常 CPU 應 < 75% 且波動,故障時 CPU 瞬間飆升 100% 且持平不降。工作管理器顯示 `DLLHOST.EXE` 佔用所有閒置 CPU 時間。重啟 IIS 暫時恢復,但過段時間復發。

根本原因

一個或多個 Access 資料庫(`.mdb`)在頻繁讀寫中損壞。MDAC 元件寫入損壞資料庫時,ASP 執行緒進入 BLOCK 狀態,其他執行緒只能等待,導致 IIS 死結,所有 CPU 時間耗在 `DLLHOST` 處理死結。

解決流程

  1. 安裝「一流資訊監控攔截系統」中的「首席檔案檢查官 IIS 健康檢查官」。
  2. 啟用「查找死結模組」,設定 `wblock=yes`,監控目錄指向網站根目錄(如 `d:\wwwroot`)。
  3. 停止 IIS → 啟動檢查官 → 重新啟動 IIS。工具會在 `log\logblock.htm` 記錄最後寫入的 Access 檔案。
  4. 故障復發時,停止 IIS,檢查日誌最後 10 筆記錄,重點關注計數器類資料庫(如 `**COUNT.MDB`、`**COUNT.ASP`)。
  5. 刪除可疑檔案至資源回收筒,重啟 IIS 觀察;若問題解決,確認該檔案為禍首。最終刪除或用 Access 2000「修復資料庫」功能修復該 `.mdb`。

案例二:svchost.exe 佔用 100% CPU——木馬/病毒偽裝或服務異常

排查木馬偽裝

  • 檢查 `win.ini` `[Windows]` 區段 `run=`、`load=` 後是否有陌生路徑。
  • 檢查 `system.ini` `[Boot]` 區段 `shell=` 是否為 `explorer.exe` 以外的值。
  • 註冊表 `HKLM\Software\Microsoft\Windows\CurrentVersion\Run` 及 `HKCU` 同路徑,查找陌生 `.exe` 鍵值。注意偽裝名(如 `expiorer.exe` 模仿 `explorer.exe`)。

病毒特徵:Code Red II / VirtualRoot 蠕蟲

利用 IIS 溢位漏洞透過 80 埠傳播,感染機器可被駭客透過 `scripts/root.exe` 取得完全控制權。表現為 `svchost.exe` 高 CPU。

通用解決步驟

  1. 更新病毒碼全盤掃描殺毒。
  2. 使用 `Tasklist /SVC` 查看 `svchost.exe` 載入的服務,識別異常服務。
  3. 用 `Taskkill /F /PID ` 強制結束惡意進程。
  4. 修補 IIS 漏洞、關閉不必要服務、啟用防火牆。

掌握「觀察進程→定位模組/服務→查閱日誌/掃毒→精準修復」流程,CPU 100% 難題不再是謎。

Copyright © Windows教程網 All Rights Reserved