Process

給定程序的記憶體使用情況(使用 Linux proc 文件系統)

  • August 18, 2015

我想知道 /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/mapscat /proc/$$/maps在終端中。閱讀有關地址空間虛擬記憶體頁面記憶體ASLRELFRSS工作集的維基頁面……

引用自:https://unix.stackexchange.com/questions/224015