/ 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では、メモリ使用量は非常にあいまいな用語であることに注意してください。 2つのプロセスによってmmap
- edされたファイルセグメントをどのようにカウントしますか? mmap(2) & getrusage(2) を参照してください
ターミナルでcat /proc/self/maps
、cat /proc/$$/maps
を試してください。 アドレススペース 、 仮想メモリ 、 ページキャッシュ 、 [〜#〜] aslr [〜#〜] でウィキページを読み取ります=、 [〜#〜] elf [〜#〜] 、 [〜#〜] rss [〜#〜] 、 working set 。 ..