做嵌入式開發對內存泄露很敏感,而對泄露的位置更加關注。本文記錄一下從網上搜集的/proc/meminfo各參數的含義。還不完整,待補完。
本文地址:https://segmentfault.com/a/1190000007114036
Reference
關於/proc/meminfo的理解
linux/Documentation/filesystems/proc.txt

說明
以下項目並不是每一個 Linux 系統上都有的,根據你的 Linux 設計和版本,可能多出或者少了某些項。
參考資料中的第二項是最新的 Linux 文檔
| 項目名 | 說明 |
|---|---|
| MemTotal | 所有可用的 RAM 大小,物理內存減去預留位和內核使用 |
| MemFree | LowFree + HighFree |
| Buffers | 用來給塊設備做緩存的大小(文件系統的 metadata, tracking in-flight pages) |
| Cached | 文件的緩沖區大小 |
| SwapCached | 已經被交換出來的內存。與 I/O 相關 |
| Active | 經常(最近)被使用的內存 |
| Inactive | 最近不常使用的內存。這很容易被系統移做他用 |
| Active(anon) | ? |
| Inactive(anon) | ? |
| Unevictable | ? |
| Mlocked | ? |
| HighTotal | 所有在 860MB(0x35C00000)以上的空間。主要是用戶空間程序或緩存頁 |
| LowTotal | 860MB 以下的空間。如果該空間用完了,系統可能會異常 |
| HighFree | 860MB 以上空間的可用空間 |
| LowFree | 860MB 以下空間的可用空間 |
| SwapTotal | 交換空間總和 |
| SwapFree | RAM 暫存在 Swap 中的大小 |
| Dirty | 等待寫回的數據大小 |
| WriteBack | 正在寫回的數據大小 |
| Mapped | 映射文件大小 |
| AnonPages | 映射到用戶空間的非文件頁表大小 |
| Shmem | ? |
| Slab | 內核數據結構緩存 |
| SReclaimable | Slab 的一部分。當內存壓力大時,可以 reclaim |
| SUnreclaim | 不可以 reclaim 的 Slab |
| KernelStack | ? |
| PageTables | 最底層的頁表的內存空間 |
| NFS_Unstable | 已經發給 NFS 服務器、但是尚未被確認(committed)寫入到穩定存儲的頁表 |
| Bonce | ? |
| WritebackTmp | Memory used by FUSE for temporary writeback buffers |
| CommitLimit | CommitLimit = ('vm.overcommit_ratio' * Physical RAM) |
| Committed_AS | The amount of memory presently allocated on the system.(系統中目前分配了的內存?) |
| VmallocTotal | vmalloc 內存大小 |
| VmallocUsed | 已被使用的虛擬內存大小 |
| VmallocChunk | 在 vmalloc 區域中可用的最大的連續內存塊的大小 |
