除了free與vmstat之外,透過調閱**/proc/meminfo**的內容可以查閱進一步的統計資訊:
cat /proc/meminfo
MemTotal: 12142744 kB
MemFree: 10889316 kB
Buffers: 391964 kB
Cached: 522584 kB
SwapCached: 0 kB
Active: 407604 kB
Inactive: 564460 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 12142744 kB
LowFree: 10889316 kB
SwapTotal: 20972816 kB
SwapFree: 20972816 kB
Dirty: 304 kB
Writeback: 0 kB
AnonPages: 57388 kB
Mapped: 23556 kB
Slab: 214100 kB
PageTables: 7328 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
CommitLimit: 27044188 kB
Committed_AS: 372876 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 281368 kB
VmallocChunk: 34359456975 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
Hugepagesize: 2048 kB
他的輸出內容非常的多,但你可以分成幾塊來看: 高階、低階的與記憶體統計資訊。
高階資訊,基本上就等同於是在free看到的那些內容: MemTotal是系統中可用的記憶體總量,但其實是扣掉了一些被kernel所保留的一點點空間。
MemFree是HighFree與LowFree的加總。
Buffers是buffer所占用的空間。
Cached是不包含SwapCached的cache空間。
比較低階的資訊有:
Active指的是那些最近或是經常被使用的page,而Inactive則是那些最近都沒有被使用的page。當系統需要調用新的page空間時,會先從Inactive的部分下手,因為Active的部分比較有機會被再度使用。
HighTotal與HighFree代表的是user space所能使用的以及還剩餘多少的使用空間。
LowTotal與LowFree則是kernel space所能使用的以及還剩餘多少的使用空間。
SwapTotal與SwapFree指的是swap所能使用以及還剩餘多少空間。
Dirty指的是等待被寫入disk的資料量。
Writeback則是正在被寫入disk的資料量。
AnonPages為non-paged的空間。
Mapped為/dev設備所mapped的空間。
Slab是kernel所使用的buffer空間。
PageTables是page管理的index大小。
VmallocTotal是透過**vmalloc()可以調用的記憶體大小。
VmallocUsed是透過vmalloc()**所調用的記憶體大小。
VmallocChunk則是記錄還剩多少連續的可調用的記憶體空間。
[本系列文章]
Linux系統效能分析與探討 - [1] CPU的效能關鍵字
Linux系統效能分析與探討 - [2] 記憶體的效能關鍵字
Linux系統效能分析與探討 - [3] Linux作業系統網路模組的效能關鍵字
Linux系統效能分析與探討 - [4] Linux block device的效能關鍵字
Linux系統效能分析與探討 - [5] 了解process的運作的指令 1 - ps
Linux系統效能分析與探討 - [6] 了解process的運作的指令2 - top
Linux系統效能分析與探討 - [7] 了解process的運作的指令3 - pstree
Linux系統效能分析與探討 - [8] 了解process使用記憶體的狀況 - pmap
Linux系統效能分析與探討 - [9] 顯示系統的附載狀況 - uptime, w
Linux系統效能分析與探討 - [10] 顯示系統的狀態 - vmstat
Linux系統效能分析與探討 - [11] 檢視記憶體的使用狀況 - free