Linux 中 proc meminfo 的含義

2021-09-18 04:12:12 字數 2085 閱讀 4277

做嵌入式開發對記憶體洩露很敏感,而對洩露的位置更加關注。本文記錄一下從網上蒐集的/proc/meminfo各引數的含義。還不完整,待補完。

關於/proc/meminfo的理解

linux/documentation/filesystems/proc.txt

以下專案並不是每乙個 linux 系統上都有的,根據你的 linux 設計和版本,可能多出或者少了某些項。

參考資料中的第二項是最新的 linux 文件

專案名說明

memtotal所有可用的 ram 大小,物理記憶體減去預留位和核心使用

memfreelowfree + highfree

buffers用來給塊裝置做快取的大小(檔案系統的 metadata, tracking in-flight pages)

cached檔案的緩衝區大小

swapcached已經被交換出來的記憶體。與 i/o 相關

active經常(最近)被使用的記憶體

inactive最近不常使用的記憶體。這很容易被系統移做他用

active(anon)?

inactive(anon)?

unevictable?

mlocked?

hightotal所有在 860mb(0x35c00000)以上的空間。主要是使用者空間程式或快取頁

lowtotal860mb 以下的空間。如果該空間用完了,系統可能會異常

highfree860mb 以上空間的可用空間

lowfree860mb 以下空間的可用空間

swaptotal交換空間總和

swapfreeram 暫存在 swap 中的大小

dirty等待寫回的資料大小

writeback正在寫回的資料大小

對映檔案大小

anonpages對映到使用者空間的非檔案頁表大小

shmem?

slab核心資料結構快取

sreclaimableslab 的一部分。當記憶體壓力大時,可以 reclaim

sunreclaim不可以 reclaim 的 slab

kernelstack?

pagetables最底層的頁表的記憶體空間

nfs_unstable已經發給 nfs 伺服器、但是尚未被確認(committed)寫入到穩定儲存的頁表

bonce?

writebacktmpmemory used by fuse for temporary writeback buffers

commitlimitcommitlimit = ('vm.overcommit_ratio' * physical ram)

committed_asthe amount of memory presently allocated on the system.(系統中目前分配了的記憶體?)

vmalloctotalvmalloc 記憶體大小

vmallocused已被使用的虛擬記憶體大小

vmallocchunk在 vmalloc 區域中可用的最大的連續記憶體塊的大小

Linux中許可權

當你在linux下用命令ll 或者ls la的時候會看到這些字眼,這些字眼表示為不同使用者組的許可權 r read就是讀許可權 數字4表示 w write就是寫許可權 數字2表示 x excute就是執行許可權 數字1表示 讀 寫 執行三項許可權可以用數字表示,就是r 4,w 2,x 1。所以,rw...

Linux中控制代碼

1.控制代碼就是乙個識別符號,只要獲得物件的控制代碼,我們就可以對物件進行任意的操作。2.控制代碼不一定是指標。作業系統用控制代碼可以找到一塊記憶體,這個控制代碼可能是識別符號,例如map的key,也可能是指標,看作業系統怎麼處理的了。fd算是在某種程度上替代控制代碼吧 linux 有相應機制,但沒...

Linux中的時鐘概念Linux中的時鐘概念

linux的時鐘中斷中涉及至二個全域性變數乙個是xtime,另乙個則是jiffies。有乙個與時間有關的時鐘 實時時鐘 rtc 這是乙個硬體時鐘,用來持久存放系統時間,系統關閉後靠主機板上的微型電池保持計時。系統啟動時,核心 通過讀取rtc來初始化wall time,並存放在xtime變數中,即xt...