標籤:windows 2008;大量拷貝;釋放記憶體;釋放檔案系統快取
管理的伺服器中有一台windows 2008,這台伺服器最近每天都會拷貝幾十萬的圖片,拷貝量非常大,維護時發現每次拷貝完,作業系統的記憶體使用量都會接近100%,導致沒有辦法進行其它操作,前幾次都通過下班後重啟伺服器解決,今天仔細查了一下,找到了問題的原因
問題描述:
server 2008 r2系統會在進行大量IO操作時,佔據大量記憶體資源,直至記憶體佔滿,從而導致系統運行速度變慢。
相關現象:
1. 記憶體佔用率90%以上(即是是64G記憶體,也會佔用63.5G)
2. 資源管理員中所有進程記憶體和較低(約10G)
3. 通過RAMMAP可以看到Mapped File一項數值很高。
產生原因:
Server2008 r2會盡量使用記憶體來進行檔案快取,從而提高相應檔案的讀寫速度,然而,卻沒有設定一個預設的極限值(屬於windows系統的問題)
解決方案:
1. 暫時解決方案策略:利用RAMMAP的empty system working set,可以使得檔案快取釋放掉。具體。缺點是之後如果繼續進行IO操作,檔案快取還會一直增加。
2. 更好的解決方案策略:強制設定windows系統檔案快取大小,使得其不會佔用大量的記憶體。缺點是每次重啟都需要重新設定。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/41/19/wKioL1PQtirRn5UnAAH9iUAnegw967.jpg" style="float:none;" title="QQ圖片20140724151219.jpg" alt="wKioL1PQtirRn5UnAAH9iUAnegw967.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/41/1A/wKiom1PQtUeSb1p2AAPkUeXt8TQ570.jpg" title="QQ20140724152527.jpg" alt="wKiom1PQtUeSb1p2AAPkUeXt8TQ570.jpg" />
,使用RAMMAP可以使得檔案快取完全釋放,但是後期會重新增加直至填滿。
使用SetSystemFileCacheSize可以使得檔案快取得到有效控制。
相關軟體下載:
SetSystemFileCacheSize
RAMMAP
參考資料:
http://social.technet.microsoft.com/wiki/contents/articles/6925.how-to-prevent-filecache-to-eat-up-all-the-ram.aspx
本文出自 “徐三金那些年混IT的事” 部落格,請務必保留此出處http://xu3jin.blog.51cto.com/2261216/1529705