早幾日發現, 其中一部4GB RAM 的Server 2008R2 使用了95% ( Available = 200MB, Cached = 200MB )。相對其他不同服務的Server 『大食』。
由幾個方向不斷查找,找過Kernel Page、找過Application Page及Driver memory leak也找不出問題。
最後基於該Server 有2TB 好幾百萬個檔案,找了NTFS相關的資料。
答案是MFT
好似自Vista 開始就有
原來MFT會Cache 到Windows memory,而且只會有部份顯示在Cached 一項之內。

Cached = 6786MB, Used = 12,279MB -6929MB = 5350MB
如果用RamMap一看, Cached 的6786MB 大約等如 Standby 6,914,160/1024 = 6752MB
那Active 部分的Mapped File 和 Metafile應該會視為 Used, Task Manager 內 Physical Memory Usage 藍線的部份。
一個檔案在 NTFS 內大約會使用 1KB 的MFT空間,即是如果有4,000,000個檔案,全數MFT Area 應該會用4GB。
如果那些檔案及目錄被讀取過,Metafile就會load上Memory。
以下是一部讀多過寫、有4百萬個檔案的EMAIL SERVER。
Metafile Active 有3GB 會計算在Used Memory 的部份內
睇完RAMMap 才知, 自己對Task Manager 內的數字未了解得透。
