linux下/proc/meminfo解讀

海_纳百川發表於2024-10-27

/proc/meminfo 檔案顯示了系統的詳細記憶體使用資訊。它提供了比 free 命令更深入的視角,幫助你理解記憶體的使用情況。下面是各個欄位的詳細解釋:

記憶體相關欄位解釋

  1. MemTotal: 實體記憶體總量。這裡是 46804 kB,約為 46 MB
  2. MemFree: 未被分配的記憶體量(空閒記憶體)。顯示 2352 kB,即約 2.3 MB
  3. MemAvailable: 可用於新分配的記憶體量,考慮到快取和記憶體回收,顯示 12740 kB,即約 12.7 MB
  4. Buffers: 用於緩衝資料的記憶體量。顯示 624 kB,用於快取 I/O 操作的資料。
  5. Cached: 被快取的資料,但仍可以用於程序的記憶體量。顯示 14828 kB,即約 14.8 MB
  6. SwapCached: 來自交換分割槽的快取頁面,已被交換回記憶體但尚未被修改,因此在記憶體緊張時可以釋放。這裡是 0 kB,表示沒有啟用交換快取。

記憶體狀態相關欄位

  1. Active: 最近被使用或訪問的記憶體量。顯示 4936 kB,即約 4.9 MB,表示活躍的記憶體。
  2. Inactive: 最近未使用但可能被重新使用的記憶體量。顯示 20400 kB,即約 20.4 MB
  3. Active(anon): 活躍的匿名記憶體(未對映檔案的頁面)。這裡是 28 kB
  4. Inactive(anon): 不活躍的匿名記憶體。顯示 11940 kB,即約 11.9 MB
  5. Active(file): 活躍的檔案快取記憶體。顯示 4908 kB
  6. Inactive(file): 不活躍的檔案快取記憶體。顯示 8460 kB,即約 8.5 MB
  7. Unevictable: 無法被回收或釋放的記憶體。顯示 2084 kB,即約 2 MB

核心記憶體相關欄位

  1. Mlocked: 由於記憶體鎖定而無法被交換的記憶體。這裡是 0 kB
  2. Slab: 用於核心資料結構的快取記憶體。顯示 8628 kB,包括 SReclaimableSUnreclaim
    • SReclaimable: 可以回收的 Slab 記憶體。顯示 2484 kB
    • SUnreclaim: 不能回收的 Slab 記憶體。顯示 6144 kB
  3. KernelStack: 核心堆疊使用的記憶體量。顯示 944 kB

交換記憶體相關欄位

  1. SwapTotal: 總交換分割槽的大小。這裡是 0 kB,表示沒有配置交換分割槽。
  2. SwapFree: 空閒的交換分割槽大小。這裡是 0 kB
  3. CommitLimit: 系統可以分配的最大記憶體量,包括交換分割槽。顯示 23400 kB
  4. Committed_AS: 已承諾的記憶體量(已被程式申請但可能未實際使用)。顯示 97112 kB,表示系統記憶體過量使用的風險較高。

其他記憶體欄位

  1. PageTables: 頁表使用的記憶體。顯示 444 kB
  2. AnonPages: 未對映到檔案的匿名記憶體。顯示 12016 kB
  3. Mapped: 記憶體對映的檔案大小。顯示 6460 kB
  4. Shmem: 共享記憶體大小。這裡是 0 kB,表示沒有使用共享記憶體。
  5. KReclaimable: 核心可回收記憶體。顯示 2484 kB,與 SReclaimable 相同。

記憶體分配相關欄位

  1. VmallocTotal: 可供 vmalloc 分配的虛擬記憶體總量。顯示 983040 kB,即約 960 MB
  2. VmallocUsed: 已分配的 vmalloc 記憶體量。顯示 5828 kB
  3. VmallocChunk: 當前可用的最大 vmalloc 記憶體塊。這裡是 0 kB,表示沒有足夠連續的虛擬記憶體塊可用。

特殊記憶體區域

  1. CmaTotal: 受 CMA(連續記憶體分配器)管理的記憶體總量。顯示 2048 kB,即 2 MB
  2. CmaFree: 剩餘的 CMA 管理的記憶體量。顯示 0 kB

總結

  • 實體記憶體:你的裝置有 46 MB 的實體記憶體,使用情況較緊張。
  • 記憶體可用性MemAvailable 顯示還有 12.7 MB 可以分配,但系統中的快取和檔案快取部分可以回收。
  • 交換分割槽:系統沒有配置交換分割槽,因此沒有額外的虛擬記憶體資源。

相關文章