windows2008內存使用太高問題

最近一段時間發現業務的一臺機器windos2008的可以使用內存持續下降,今天已經下降到2G。
計算了跑着的進程的內存和,發現與實際不符(不知道那剩餘的4G跑哪去了)
後來使用了RAMMap v1.51進行分析內存,下載地址,請點擊此處windows

分析發現緩存

windows2008內存使用太高問題

Mapped file佔用大量內存4G,根據微軟官網給出的解釋:
You experience performance issues in applications and services in various versions of Windows XP, Windows Vista, Windows Server 2003, Windows Server 2008, and Windows Server 2008 R2. Additionally, you notice the following symptoms:
1)Available memory is almost exhausted.
2)The system file cache consumes most of the physical RAM.
3)There is a continuous and high volume of cached read requests to the hard disk.app

If there is a continuous and high volume of cached read requests from any process or from any driver, the working set size of the system file cache will grow to meet this demand. The system file cache consumes the physical RAM. Therefore, sufficient amounts of physical RAM are not available for other processes
也就是說文件系統的緩存沒有作限制致使,持續增長文件系統的緩存持續佔有物理內存。ide

解決方案:
官方提供的解決方案是作內存的限制(不容許佔有的內存持續增長)this

安裝Windows Dynamic Cache Service,下載地址點擊此處
註冊服務
Dynamic Cache Registry settings,這裏我設置了10G(物理內存12G)code

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
"MaxSystemCacheMBytes"=dword:00002800
"MinSystemCacheMBytes"=dword:00000064
"SampleIntervalSecs"=dword:0000003c
"CacheUpdateThresholdMBytes"=dword:00000064
只需設置MaxSystemCacheMBytes,這裏設置爲10Gorm

在服務中啓動Dynamic Cache服務。注意:須要重啓應用。blog

關鍵詞說明:
Process Private: 分配給單一Process專用的內存
Mapped File: 用來儲放檔案內容快取(Cache)的內存空間
Shared Memory: 標註給多個Process共用的內存分頁(Page,內存管理單位)
Page Table: 用來描述虛擬內存位址的分頁表(裡面是一筆一筆的PTE,Page Table Entries)
Paged Pool: 容許移至硬盤的核心集區內存(Kernal Pool Memory)
Nonpaged Pool: 不容許移至硬盤的核心集區內存
System PTEs: 與I/O空間、核心堆疊、內存描述清單等系統分頁相關的PTE
Session Private: 登入工做階段相關的內存
Metafile: 是系統快取的一部份,包含NTFS Metadata(包含MFT及其餘NTFS Metadata檔案)。在MFT中,每一個檔案屬性記錄佔用1K,而一個檔案至少有一個屬性記錄,再加上其餘NTFS Metadata檔,當檔案數衆多,這塊會很快速成長。
AWE: 啓用Address Windowing Extension技術所使用的相關內存空間(較常應用在SQL或其餘DB)
Driver Locked: 驅動程式鎖定的實體內存。多用於I/O的暫時性小量應用,若是有裝RAMDisk,也會算在這一區。
Kernel Stack: 核心執行緒推疊,執行緒愈多,用量愈大。進程

每項分類都有如下欄位:內存

Active: 正在使用中的實體內存分頁(Process Working Set或System Working Set)
Standby: 留在實體內存但暫不使用的分頁,保留供後續能快速重覆利用
Modified: 與Standy相似,但內容被修改過,重覆使用前要先回寫到硬盤機
Modified no write: 與Modified相似,但標註爲不需回寫到硬盤
Transition: 在分類之間轉換的分頁
Zeroed: 內容已清空可供使用的分頁,系統剛開機時明顯增長,隨著使用一段時間逐步轉爲Standby
Free: 能夠使用但殘留先前資料的分頁,使用前需先轉爲Zeroed
Bad: 標註損壞的內存
相關文章
相關標籤/搜索