
/procディレクトリ内のどのファイルとそのファイル内のどのフィールドが、特定のPIDのメモリ使用量を計算するために必要かを知りたいです。私は「stat」ファイルとそのファイルの「vsize」パラメータを使用してきましたが、これは良い計算ではありません。より良い公式を知っている人はいますか?ありがとう、アンナ。
答え1
実際にはを使用する必要がありますので/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
2つのプロセスが共有するファイルセグメントを計算する方法は?バラよりマッピング(2)&ルサッハを入手(2)
cat /proc/self/maps
ターミナルで試してみてくださいcat /proc/$$/maps
。 Wikiページを読むアドレス空間、仮想メモリ、ページキャッシュ、ASLR、非常に低い周波数、RSS、ワークセット...
答え2
(「スケール設定サイズ」)インポートpss
(GB):
cat /proc/$pid/smaps | grep -i pss | awk '{Total+=$2} END {print Total/1024/1024" GB"}'