2014年7月21日 星期一

Windows Server 2008 R2 / Windows 7 發生 svchost.exe 記憶體異常肥大導致 Out of memory

最近在進行一些監控系統的測試,遇到了 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

 

2014-07-21_234237

※由於文中已解決此問題,圖片記憶體僅供參考,實際已成長到 1.x GB

 

 

setp.2 打開命令提示字元,輸入以下找出運作的 service pid 72

C:> tasklist /svc

2014-07-21_234122

 

 

發生問題的 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文件後就正常囉。

KB2847346

 

Orignal From: Windows Server 2008 R2 / Windows 7 發生 svchost.exe 記憶體異常肥大導致 Out of memory

沒有留言:

張貼留言