最近在進行一些監控系統的測試,遇到了 Windows Server 2008 R2 一直遇到 svchost.exe 出現了 Out of memory
好的,第一次遇到這種狀況 svchost 竟然記憶體爆了,svchost.exe 是系統中執行重要程式的執行檔
在系統運作的 svchost.exe 有10幾隻不等,都是用來運行 Windows Service 的用途,可以說是重要的執行檔,至於怎麼會發生這樣的狀況
Q1. 被偽裝成病毒執行大量工作?
Ans: 初步檢查研判沒有病毒 / 木馬的現象。
沒辦法只好一步一步查詢,畢竟不能遇到問題就 restart,這絕不是一個 MIS 解決問題的方法
找出問題
setp.1 找出 Out of memory 的 svchost.exe
開啟「工作管理員」找到記憶體特大的 svchost.exe,並記錄其 PID
※由於文中已解決此問題,圖片記憶體僅供參考,實際已成長到 1.x GB
setp.2 打開命令提示字元,輸入以下找出運作的 service pid 72
C:\> tasklist /svc
發生問題的 svchost.exe 負責執行 EventSystem, FontCache, netprofm, nsi, W32Time,必須從這些開始下手。
從 debug 神器 Process Monitor 找到發生問題的是 nsi 這個服務在搞鬼
從微軟的 KB 文件發現是既有的 Windows Server 2008 R2 / Windows 7 的 bug
執行 NSI 服務 Svchost.exe 遺漏記憶體和非分頁集區記憶體遺漏標籤 NSpc
http://support.microsoft.com/kb/2847346/zh-tw
更新微軟的 KB文件後就正常囉。