TOP

啟用Dynamic Cache Service服務,內存占用率就降到設置的閾值了,服務器不用重啟
2020-02-09 11:02:48   字體:【 】  瀏覽:409次   評論:0
系統環境:
Windows Server 2008 R2 + Sql Server 2008 R2
 
問題描述:
Windows Server 2008 R2系統內存占用率過大,而在任務管理器中各進程內存占用總和都遠不到此占用率。
相關現象:
1. 內存占用率90%以上
2. 任務管理器中所有進程內存和較低,遠不到90%,有二十多G的內存偏差
 
分析過程:
 
  1. 首先懷疑SQL Server內存占用,但是SQL Server設置了最大內存,且任務管理器中顯示的內存占比并沒有達到很高,排除此原因
  2. 用RamMap工具查看內存的詳細使用情況,發現圖元文件(Metafile)占用了二十多G的內存,應該與此有關
 
解決方法:利用RamMap的“清空系統工作集”功能,可以釋放內存。

啟用Dynamic Cache Service服務,內存占用率就降到設置的閾值了,服務器不用重啟

 
圖元文件(Metafile):
     Metafile可以理解為系統緩存,Windows server 2008系統中,比如存在大量的文件拷貝等磁盤io操作,系統會自動將其緩存到內存中,這部分被占用的內存在任務管理器的中未體現出來的,所以用戶會認為系統的內存占用異常。同時,MetaFile默認是沒有限制的,所以系統會無限制占用內存。 但是對于Windows 2012之后,操作系統會自動限制系統緩存的上限從而避免物理內存的耗盡。
    看了圖元文件的解釋后,發現前兩天一直在做轉移文件的操作,幾百G的大量小文件在不同磁盤中轉移,從而導致內存占用過高,符合此解釋。至此,問題調查清楚。
 
如下, 是微軟官方Blog中介紹修改注冊表來限制動態緩存的方法:
Microsoft Windows Dynamic Cache的更新程序,用戶可以下載后添加到服務中,通過修改注冊表來限制動態緩存的最大值,比如設置上限為200M等,這樣系統就可以把作為緩存使用的內存設置了上限值。
具體設置步驟如下:
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位處理器版本)。






最近遇到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位處理器版本)。


Tags:啟用 DynamicCacheService 服務 內存 占用 降到 設置 服務器 不用 重啟 責任編輯:大奶妹
】【打印繁體】【投稿】【收藏】 【推薦】【舉報】【評論】 【關閉】 【返回頂部
上一篇Apache查看連接數和限制當前的連.. 下一篇apache做反向代理服務器

  • ALTER TABLE zysjyj DROP aid;ALTER TABLE zysjyj ADD aid int(10) NOT NULL FIRST;ALTER TABLE zysjyj AUTO_INCREMENT=10000;ALTER TABLE zysjyj MODIFY COLUMN aid int(10) NOT NULL AUTO_INCREMENT,ADD PRIMARY KEY(aid);

-->

發布者

大奶妹 大奶妹
等級:普通會員
積分:0 個
性別:保密
danai@wwqq.com
58 身份還未認證 郵箱還未認證 手機還未認證 給它發送短消息 搜尋它在服務器發布的全部文章 54

最新文章

網站服務地區

汕尾市網站建設
渭南市網站建設
玉林市網站建設
寧河縣網站建設
延安市網站建設
黃石市網站建設
鎮江市網站建設
五家渠市網站建設
南昌市網站建設
黔東南苗族侗族自治州網站建設
苗栗縣網站建設
西城區網站建設
金昌市網站建設
新竹市網站建設
城口縣網站建設
宿州市網站建設
巢湖市網站建設
阜陽市網站建設
嘉峪關市網站建設
來賓市網站建設
許昌市網站建設
漢中市網站建設

本月熱門

相關文章

(★^O^★)MG呼噜噜爱上乡下怎么玩容易爆分 广东麻将怎么打图解 极速时时彩是怎么回事 广东26选5开奖结果 黑龙江22选5开奖结果查询今天开奖结果查询 爱玩棋牌25qp手游下载 五星体育申城棋牌网 微乐河南麻将下载 快3预测专家推荐号码 p62今天开奖结果 澳门娱乐所有网站 滑袖打麻将手法讲解 最新捕鱼平台公司资讯 CLUB百家乐现金网 天津十一五昨天开奖结果 陕西快乐10分基本走势图 博远棋牌官方注册