pmapで計算されたプライベートメモリ、仮想メモリサイズ、および常駐メモリサイズの組み合わせ?

pmapで計算されたプライベートメモリ、仮想メモリサイズ、および常駐メモリサイズの組み合わせ?

psコマンドを使用して、プロセスの仮想メモリサイズと常駐メモリサイズを取得できます。

$ ps aux | grep apache2
USER       PID  %CPU %MEM  VSZ  RSS     TTY   STAT START    TIME    COMMAND
www-data 31141  0.0  0.3 163864 24008 ?        S    16:15   0:01 /usr/sbin/apache2 -k start

仮想メモリと常駐メモリは共有ライブラリも考慮しているため、プロセスの物理メモリ空間に対する正確な精度は提供されません。

したがって、より良い解決策は、pmapを使用してプロセスの物理メモリ使用量を取得することです。したがって、上記と同じプロセスを使用したpmapの出力は次のようになります。

$ sudo pmap -d 31141
31141:   /usr/sbin/apache2 -k start
Address           Kbytes Mode  Offset           Device    Mapping
00007f85bbb82000      28 r-x-- 0000000000000000 0fc:00000 libnss_dns-2.15.so
...
...
mapped: 163864K    writeable/private: 28420K    shared: 592K

したがって、「書き込み可能/個人」値は、約28 MBのプロセスのプライベートメモリです。私の質問:このプライベートメモリはメインメモリ(RAM)だけですか?または、この数にスワップスペースを含めることができますか?

ベストアンサー1

次のタイトルの記事を見つけました。Linuxのメモリ使用量について私の考えでは、以前はlinuxquestions.orgのウェブサイトで見つけて、タイトルのものよりも優れていると思います。どのように精密メモリ使用量を測定しますか?

から抜粋 記憶の理解…投稿

ピコ秒出力
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
dbunker   3468  0.0  2.7  25400 14452 ?        S    20:19   0:00 kdeinit: kedit
マッピング出力
Address   Kbytes Mode  Offset           Device    Mapping
08048000      40 r-x-- 0000000000000000 0fe:00000 kdeinit
08052000       4 rw--- 0000000000009000 0fe:00000 kdeinit
08053000    1164 rw--- 0000000008053000 000:00000   [ anon ]
40000000      84 r-x-- 0000000000000000 0fe:00000 ld-2.3.5.so
40015000       8 rw--- 0000000000014000 0fe:00000 ld-2.3.5.so
40017000       4 rw--- 0000000040017000 000:00000   [ anon ]
... (trimmed) ...
mapped: 25404K    writeable/private: 2432K    shared: 0K
何が起こっているのか説明

出力を見ると、Kbytesは最大の行が一般的に共有ライブラリを含むコードスニペットであることがわかります(「lib」で始まる行は共有ライブラリです)。これの利点は、プロセス間で共有できることです。プロセス間で共有されるすべての部分を分離すると、出力の下部に表示される「書き込み可能/個人」の合計が生成されます。これは、共有ライブラリを除くプロセスの増分コストと見なすことができます。したがって、このKEditインスタンスを実行するためのコスト(すべての共有ライブラリがロードされたと仮定)は約2MBです。これは、psが報告した14MBまたは25MBとはまったく異なります。

プロセスXはどのくらいのスワップスペースを使用しますか?

次のコマンドを使用すると、プロセスが使用しているスワップ領域を確認できます。

$ grep VmSwap /proc/$(pidof chrome | awk '{print $1}')/status
VmSwap:     1324 kB

chrome上記は、最初の戻り値のPIDを取得することですVmSwap

記憶統計学者

正確なメモリ測定を探している場合は、このツールを確認してくださいmemstat。名前は次のとおりです。

Cyber​​citi.biz には次のタイトルのチュートリアルがあります。Linux:仮想メモリのすべてを占めるものは何ですか?これがmemstat実際に見えます。

引用する

おすすめ記事