meminfo一些容易混淆的點

yooooooo發表於2024-09-02
MemTotal:         688576 kB     總記憶體
MemFree:          153736 kB     空閒記憶體
MemAvailable:     339884 kB     可用記憶體
Buffers:              16 kB     給檔案的緩衝大小
Cached:           267672 kB     高速緩衝儲存器
SwapCached:           36 kB     被高速緩衝儲存用的交換空間的大小
Active:           222900 kB     活躍使用中的高速緩衝儲存器頁面檔案大小
Inactive:         123700 kB     不經常使用中的告訴緩衝儲存器檔案大小
Active(anon):      31800 kB     活躍的匿名記憶體(程序中堆上分配的記憶體,是用malloc分配的記憶體)
Inactive(anon):    57272 kB     不活躍的匿名記憶體
Active(file):     191100 kB     活躍的file記憶體
Inactive(file):    66428 kB    不活躍的file記憶體     
Unevictable:           0 kB    不能被釋放的記憶體頁
Mlocked:               0 kB    mlock()系統呼叫鎖定的記憶體大小
SwapTotal:       2097148 kB    交換空間總大小
SwapFree:        2096884 kB    空閒交換空間
Dirty:                 0 kB    等待被寫回到磁碟的大小
Writeback:             0 kB    正在被寫回的大小
AnonPages:         78876 kB       未對映頁的大小
Mapped:            28556 kB    裝置和檔案對映大小
Shmem:             10160 kB    已經被分配的共享記憶體大小
Slab:             102916 kB    核心資料結構快取大小
SReclaimable:      49616 kB    可收回slab的大小
SUnreclaim:        53300 kB    不可回收的slab的大小
KernelStack:        4416 kB      kernel消耗的記憶體
PageTables:         6028 kB      管理記憶體分頁的索引表的大小
NFS_Unstable:          0 kB      不穩定頁表的大小
Bounce:                0 kB      在低端記憶體中分配一個臨時buffer作為跳轉,把位於高階記憶體的快取資料複製到此處消耗的記憶體
WritebackTmp:          0 kB      USE用於臨時寫回緩衝區的記憶體
CommitLimit:     2441436 kB      系統實際可分配記憶體總量
Committed_AS:     308028 kB      當前已分配的記憶體總量
VmallocTotal:   34359738367 kB   虛擬記憶體大小
VmallocUsed:      179588 kB    已經被使用的虛擬記憶體大小
VmallocChunk:   34359310332 kB   malloc 可分配的最大的邏輯連續的記憶體大小
HardwareCorrupted:     0 kB      刪除掉的記憶體頁的總大小(當系統檢測到記憶體的硬體故障時)
AnonHugePages:      6144 kB      匿名 HugePages 數量
CmaTotal:              0 kB    總的連續可用記憶體
CmaFree:               0 kB      空閒的連續記憶體
HugePages_Total:       0      預留HugePages的總個數 
HugePages_Free:        0     池中尚未分配的 HugePages 數量
HugePages_Rsvd:        0        表示池中已經被應用程式分配但尚未使用的 HugePages 數量
HugePages_Surp:        0      這個值得意思是當開始配置了20個大頁,現在修改配置為16,那麼這個引數就會顯示為4,一般不修改配置,這個值都是0
Hugepagesize:       2048 kB     每個大頁的大小
DirectMap4k:      108416 kB   對映TLB為4kB的記憶體數量
DirectMap2M:      940032 kB   對映TLB為2M的記憶體數量
DirectMap1G:           0 kB     對映TLB為1G的記憶體數量

  • SLAB 不包含Anonpage這些。
  • SLAB = SReclaimable + SUnreclaim
  • SReclaimable(專注於slab記憶體可以回收的部分),KReclaimable(專注於kernel可回收的部分)
  • Cache包含Inactive(file),但不包含Active(file),Cache = Inactive(file)+ SwapCached + SReclaimable + 核心物件緩衝(例如page table + 核心棧相關)
  • Unevictable 指的是那些因為某些原因不能被交換出記憶體(即不能被 page out 到磁碟或 swap out 到交換空間)的記憶體頁。這些記憶體頁被鎖定在實體記憶體中,通常是因為它們被使用者程式透過特定的系統呼叫鎖定。

相關文章