Process
給定程序的記憶體使用情況(使用 Linux proc 文件系統)
我想知道 /proc 目錄中的哪些文件以及這些文件的哪些欄位我需要計算給定 pid 的記憶體使用量。我一直在使用這個文件中的“stat”文件和“vsize”參數,但這不是一個好的計算。有人知道這個更好的公式嗎?謝謝,安娜。
確實你需要使用
/proc/
; 所以仔細閱讀proc(5)。對於程序 1234,您要讀取
/proc/1234/maps
(或/proc/1234/smaps
)以獲取地址空間,並讀取/proc/1234/status
&/proc/1234/statm
對於您自己的流程(以程式方式)使用
/proc/self/maps
,/proc/self/status
,/proc/self/statm
請注意,記憶體使用在 Linux 上是一個非常模糊的術語。您如何計算
mmap
由兩個程序編輯的文件段?參見mmap(2)和getrusage(2)嘗試
cat /proc/self/maps
,cat /proc/$$/maps
在終端中。閱讀有關地址空間、虛擬記憶體、頁面記憶體、ASLR、ELF、RSS、工作集的維基頁面……