Linux系統可以通過cat /proc/meminfo命令查看記憶體使用量情況:
MemTotal: 3934164 kB
MemFree: 307128 kB
Buffers: 148556 kB
Cached: 1051540 kB
SwapCached: 213796 kB
Active: 2309512 kB
Inactive: 990744 kB
Active(anon): 1710288 kB
Inactive(anon): 458576 kB
Active(file): 599224 kB
Inactive(file): 532168 kB
Unevictable: 16 kB
Mlocked: 16 kB
SwapTotal: 3905532 kB
SwapFree: 2783096 kB
Dirty: 2248 kB
Writeback: 0 kB
AnonPages: 2004748 kB
Mapped: 77460 kB
Shmem: 68704 kB
Slab: 139636 kB
SReclaimable: 104656 kB
SUnreclaim: 34980 kB
KernelStack: 3680 kB
PageTables: 39604 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 5872612 kB
Committed_AS: 4098244 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 384644 kB
VmallocChunk: 34359330292 kB
HardwareCorrupted: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 12288 kB
DirectMap2M: 4067328 kB
下面是對各個選項的分析:
轉自:http://bbs.chinaunix.net/thread-1929969-1-1.html
Provides information about distribution and utilization of memory. This
varies by architecture and compile options. The following is from a
16GB PIII, which has highmem enabled. You may not have all of these fields.
MemTotal: 所有可用RAM大小 (即實體記憶體減去一些預留位和核心的二進位代碼大小)
MemFree: LowFree與HighFree的總和
Buffers: 用來給塊裝置做的緩衝大小(只記錄檔案系統的metadata以及 tracking in-flight pages,就是說 buffers是用來儲存,目錄裡面有什麼內容,許可權等等。)
Cached: 用來給檔案做緩衝大小(直接用來記憶我們開啟的檔案). 它不包括SwapCached
SwapCached: 已經被交換出來的記憶體,但仍然被存放在swapfile中。用來在需要的時候很快的被替換而不需要再次開啟I/O連接埠。
Active: 最近經常被使用的記憶體,除非非常必要否則不會被移作他用.
Inactive: 最近不經常被使用的記憶體,非常用可能被用於其他途徑.
HighTotal:
HighFree: 高位記憶體是指所有在860MB以上的記憶體空間,該地區主要用於使用者空間的程式或者是快取頁面面。核心必須使用不同的手法使用該段記憶體,因此它比低位記憶體要慢一些。
LowTotal:
LowFree: 低位可以達到高位記憶體一樣的作用,而且它還能夠被核心用來記錄一些自己的資料結構。
Among many other things, it is where everything from the Slab is
allocated. Bad things happen when you're out of lowmem.
SwapTotal: 交換空間的總和
SwapFree: 從RAM中被替換出暫時存在磁碟上的空間大小
Dirty: 等待被寫回到磁碟的記憶體大小。
Writeback: 正在被寫回到磁碟的記憶體大小。
Mapped: 影射檔案的大小。
Slab: 核心資料結構緩衝
VmallocTotal: vmalloc記憶體大小
VmallocUsed: 已經被使用的虛擬記憶體大小。
VmallocChunk: largest contigious block of vmalloc area which is free
CommitLimit:
Committed_AS:
Linux記憶體計算方法:
1、MemTotal值作為總記憶體
2、空閑記憶體計算方式:如果Cached值大於MemTotal值則空閑記憶體為MemFree值,否則空閑記憶體為MemFree值+Buffers值+Cached值
3、記憶體使用量率為:空閑記憶體/總記憶體*100%。