Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

服務器 CPU 100% 佔用排查指南:六大常見原因與解決方案

編輯:關於伺服器

現象定義

正常服務器 CPU 波動在 75% 以下。若長期平線 100% 且不下降,必須介入排查。打開任務管理器定位高佔用進程(PID),再對症下藥。

六大典型元兇與對策

#進程/特徵根因解決方案
1 dllhost.exe 佔滿 CPU,重啟 IIS 臨時緩解,不久復發 Access 數據庫(常為計數器類 *.mdb)損壞,MDAC 寫入阻塞導致 ASP 線程死鎖,IIS 僵死 ① 安裝監控工具啟用「查找死鎖模塊」記錄最後寫入文件
② 停止 IIS,檢查日誌最後 10 個文件,重點排查計數器類 mdb/asp
③ 刪除或用 Access 2000「修復」損壞文件,重啟 IIS 驗證
2 svchost.exe 異常高佔用(正常僅 2~4 個實例) 木馬/病毒劫持 svchost 加載惡意 DLL(如註冊表 Run 鍵掛載偽裝程序、system.ini shell 篡改) ① 檢查 `win.ini` `[Windows] run/load`、`system.ini` `[BOOT] shell=explorer.exe` 異常項
② 掃描註冊表 `HKLM\Software\Microsoft\Windows\CurrentVersion\Run` 及 `HKCU` 同路徑,清理不明啟動項
③ 確認 `svchost.exe` 僅存在於 `C:\Windows\System32`,其他路徑即中毒
④ 使用第三方進程工具查看命令行參數,正常 svchost 運行服務組名(如 `netsvcs`)
3 Services.exe 間歇性 100%,機器掛起(Win2000) `Esent.dll` 刷新文件到磁盤邏輯缺陷 ① 安裝最新 Win2000 Service Pack (SP4 含修復)
② 或向微軟索取熱修補程序 (KB 相關)
4 正常應用程序(備份、掃描、索引等)佔用高 程序本身邏輯缺陷、版本過老、配置不當(如全盤掃描無排除目錄) ① `msconfig` 禁用可疑啟動項逐個驗證
② 任務管理器定位高佔用 PID → 搜索歸屬程序 → 升級/關閉/替換同類軟件
5 無明顯進程名,或系統進程異常(震盪波、Code Red II 等蠕蟲) 病毒、木馬、間諜軟件在後台掃描、傳播、挖礦 ① 更新病毒庫全盤掃描
② 運行 Ad-Aware 等反間諜工具
③ 關注 `svchost.exe` 異常常為中毒表現
6 explorer.exe 佔用 100% `system.ini` `[BOOT] shell=explorer.exe xxx` 被掛載木馬程序 ① 恢復 `shell=explorer.exe` 單一值
② 全盤殺毒清理殘留

通用排查流程圖

  1. 任務管理器 → 進程 → 按 CPU 降序 → 記錄高佔用 PID/名稱。
  2. 若為 `System Idle Process` 高 → 系統閒置正常,看下一個。
  3. 用 `tasklist /svc` (XP/2003) 或 `tlist -s` (2000) 查看 `svchost.exe` 承載服務組。
  4. 第三方進程工具查看完整路徑、命令行參數、加載模塊。
  5. 對照上表定位類別 → 執行對應方案 → 驗證 CPU 回落。

預防性建議

  • 定期打補丁、更新病毒庫、審計啟動項與服務。
  • 關鍵服務器部署 HIDS/EDR,異常進程行為實時告警。
  • Access 應用遷移至 SQL Server Express,根治 mdb 鎖死隱患。
Copyright © Windows教程網 All Rights Reserved