天天看點

Linux /proc/meminfo檔案詳解

以下是我們公司生産mysql伺服器meminfo檔案内容

MemTotal:所有可用的記憶體大小,實體記憶體減去預留位和核心使用。系統從加電開始到引導完成,firmware/BIOS要預留一些記憶體,核心本身要占用一些記憶體,最後剩下可供核心支配的記憶體就是MemTotal。這個值在系統運作期間一般是固定不變的,重新開機會改變。

MemFree:表示系統尚未使用的記憶體。

MemAvailable:真正的系統可用記憶體,系統中有些記憶體雖然已被使用但是可以回收的,比如cache/buffer、slab都有一部分可以回收,是以這部分可回收的記憶體加上MemFree才是系統可用的記憶體

Buffers:用來給塊裝置做緩存的記憶體,(檔案系統的 metadata、pages)

Cached:配置設定給檔案緩沖區的記憶體,例如vi一個檔案,就會将未儲存的内容寫到該緩沖區

SwapCached:被高速緩沖存儲用的交換空間(硬碟的swap)的大小

active:經常使用的高速緩沖存儲器頁面檔案大小

Inactive:不經常使用的高速緩沖存儲器檔案大小

Active(anon):活躍的匿名記憶體

Inactive(anon):不活躍的匿名記憶體

Active(file):活躍的檔案使用記憶體

Inactive(file):不活躍的檔案使用記憶體

Unevictable:不能被釋放的記憶體頁

Mlocked:系統調用 mlock 家族允許程式在實體記憶體上鎖住它的部分或全部位址空間。這将阻止Linux 将這個記憶體頁排程到交換空間(swap space),即使該程式已有一段時間沒有通路這段空間

SwapTotal:交換空間總記憶體

SwapFree:交換空間空閑記憶體

Dirty:等待被寫回到磁盤的

Writeback:正在被寫回的

AnonPages:未映射頁的記憶體/映射到使用者空間的非檔案頁表大小

Mapped:映射檔案記憶體

Shmem:已經被配置設定的共享記憶體

Slab:核心資料結構緩存

SReclaimable:可收回slab記憶體

SUnreclaim:不可收回slab記憶體

KernelStack:核心消耗的記憶體

PageTables:管理記憶體分頁的索引表的大小

NFS_Unstable:不穩定頁表的大小

Bounce:在低端記憶體中配置設定一個臨時buffer作為跳轉,把位于高端記憶體的緩存資料複制到此處消耗的記憶體

WritebackTmp:FUSE用于臨時寫回緩沖區的記憶體

CommitLimit:系統實際可配置設定記憶體

Committed_AS:系統目前已配置設定的記憶體

VmallocTotal:預留的虛拟記憶體總量

VmallocUsed:已經被使用的虛拟記憶體

VmallocChunk:可配置設定的最大的邏輯連續的虛拟記憶體

HardwareCorrupted:當系統檢測到記憶體的硬體故障時删除掉的記憶體頁的總量

AnonHugePages:匿名大頁緩存

CmaTotal:連續可用記憶體總量

CmaFree:空閑連續可用記憶體

HugePages_Total:預留的大頁記憶體總量

HugePages_Free:空閑的大頁記憶體

HugePages_Rsvd:已經被應用程式配置設定但尚未使用的大頁記憶體

HugePages_Surp:初始大頁數與修改配置後大頁數的內插補點

Hugepagesize:單個大頁記憶體的大小

DirectMap4k:映射TLB為4kB的記憶體數量

DirectMap2M:映射TLB為2M的記憶體數量

DirectMap1G:映射TLB為1G的記憶體數量

文檔參照https://blog.csdn.net/weixin_44367463/article/details/104005016,然後自己又做了相應的修改和完善,增加了自己的見解,提高了易讀性

繼續閱讀