最近遇到Windows Server 2008服務器內存持續飆升,48G內存用了99%,查看任務管理器的進程,也沒發現具體哪個進程用的內存比較大?
於是,在網上找了了一個查看內存的工具RamMap,具體的內容,大家可以到網上仔細看看這篇文章:《解決Windows內存問題的兩個小工具RamMap和VMMap》
這個軟件大家可以到網上去下載。
通過RamMap工具,發現占用內存是MetaFile這個東西占用的,於是同事提示使用這個工具來限制metafile對內存的使用。
《Windows Server 2008 MetaFile設置占用內存限制》
文章具體內容:
MetaFile可以理解為系統緩存,Windows server 2008系統中,比如存在大量的文件拷貝等磁盤io操作,系統會自動將其緩存到內存中,這部分被占用的內存在任務管理器的中未體現出來的,所以用戶會認為系統的內存占用異常。同時,MetaFile默認是沒有限制的,所以系統會無限制占用內存。
目前微軟有針對推出一個Microsoft Windows Dynamic Cache的更新程序,用戶可以下載后添加到服務中,通過修改注冊表來限制動態緩存的最大值,比如設置上限為200M等,這樣系統就可以把作為緩存使用的內存設置了上限值。
下載地址: http://www.microsoft.com/en-us/download/details.aspx?id=9258
具體設置步驟如下:
1. 解壓后根據不同系統版本中對應的DynCache.exe文件復制到C:\windows\system32中。
2. 以管理員身份打開命令提示符,執行如下命令添加服務:
sc create DynCache binPath= %SystemRoot%\System32\DynCache.exe start= auto type= own DisplayName= "Dynamic Cache Service"
3. 回到DynCache文件夾,找到DynCache.reg的注冊表文件導入。
4. 打開注冊表,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters
5. 右側找到MaxSystemCacheMBytes,雙擊它,這里我們選擇“十進制”,在數值里輸入要限制最大的緩存數(單位是MB),輸入800就是限制緩存最大為800MB,輸入0為不限制。
6. 到服務中啟動DynCache服務。
注:下載的dyncache解壓出來是有多幾個版本可選的,請選擇retail amd64的版本,不要選擇ia64(ia64表示安騰的64位處理器版本)。
