CentOSでは、プロセスがどのくらいのメモリコマンドPmapを使用しているかをどのように確認しますか?
Pmapはプロセスのメモリマッピングを提供し、pmapコマンドは1つ以上のプロセスのメモリ状態を表示するために使用されます。プロセスのアドレススペースとメモリステータス情報をレポートします。Pmapは実際にはSun OS上のコマンドであり、linuxは限られた機能しかサポートしていません。しかし、完全なプロセスアドレス空間を表示するのに役立ちます。プロセスメモリのステータスを表示するには、PIDまたは実行中のプロセスの一意のプロセスIDが必要です。/procまたはtopやpsなどの通常のコマンドで取得できます。
#pmap PID
または
#pmap [options] PID
出力にはすべてのアドレス、kbytes、mode、mappingが表示されます。
オプション-x extended表示拡張フォーマット
-dデバイスフォーマットを表示
-q quiet header/footer行は表示されません
-Vバージョン情報を表示
単一プロセスメモリ状態[root@info ~]# pmap 1013
1013: /usr/sbin/sshd
00110000 1480K r-x- /usr/lib/libcrypto.so.1.0.0
00282000 80K rw-- /usr/lib/libcrypto.so.1.0.0
00296000 12K rw-- [ anon ]
00299000 36K r-x- /lib/libkrb5support.so.0.1
002a2000 4K rw-- /lib/libkrb5support.so.0.1
002a3000 16K r-x- /lib/libplc4.so
002a7000 4K rw-- /lib/libplc4.so
002ab000 88K r-x- /lib/libaudit.so.1.0.0
002c1000 4K r-- /lib/libaudit.so.1.0.0
002c2000 4K rw-- /lib/libaudit.so.1.0.0
002c3000 216K r-x- /lib/libgssapi_krb5.so.2.2
002f9000 4K rw-- /lib/libgssapi_krb5.so.2.2
002fa000 808K r-x- /lib/libkrb5.so.3.3
003c4000 24K rw-- /lib/libkrb5.so.3.3
003ca000 152K r-x- /lib/libk5crypto.so.3.1
003f0000 4K rw-- /lib/libk5crypto.so.3.1
003f1000 92K r-x- /usr/lib/libnssutil3.so
00738000 4K r--- /lib/libresolv-2.12.so
00739000 4K rw-- /lib/libresolv-2.12.so
0073a000 8K rw-- [ anon ]
00825000 120K r-x- /lib/ld-2.12.so
00843000 4K r--- /lib/ld-2.12.so
00844000 4K rw-- /lib/ld-2.12.so
0090d000 32K r-x- /lib/libwrap.so.0.7.6
00915000 4K rw-- /lib/libwrap.so.0.7.6
00948000 484K r-x- /usr/sbin/sshd
009c1000 8K rw-- /usr/sbin/sshd
009c3000 20K rw-- [ anon ]
009e0000 92K r-x- /lib/libpthread-2.12.so
009f7000 4K r--- /lib/libpthread-2.12.so
total 8232K
マルチプロセスメモリステータスマルチプロセスメモリが複数のPIDを挿入していることを確認できます。複数のPIDの間にスペースを入れて区切ります。
pmap 1013 1217 1118
プロセスメモリの拡張[root@info ~]# pmap -x
1013 1013: /usr/sbin/sshd
Address Kbytes RSS Dirty Mode Mapping
00110000 1480 92 0 r-x- libcrypto.so.1.0.0
00282000 80 80 80 rw-- libcrypto.so.1.0.0
00296000 12 8 4 rw-- [ anon ]
00299000 36 0 0 r-x- libkrb5support.so.0.1
002a2000 4 4 4 rw-- libkrb5support.so.0.1
002a3000 16 0 0 r-x- libplc4.so
002a7000 4 4 4 rw-- libplc4.so
002ab000 88 4 0 r-x- libaudit.so.1.0.0
002c1000 4 4 4 r--- libaudit.so.1.0.0
002c2000 4 4 4 rw-- libaudit.so.1.0.0
002c3000 216 4 0 r-x- libgssapi_krb5.so.2.2
002f9000 4 4 4 rw-- libgssapi_krb5.so.2.2
002fa000 808 4 0 r-x- libkrb5.so.3.3
003c4000 24 24 24 rw-- libkrb5.so.3.3
003ca000 152 4 0 r-x- libk5crypto.so.3.1
003f0000 4 4 4 rw-- libk5crypto.so.3.1
003f1000 92 0 0 r-x- libnssutil3.so
00408000 12 12 12 rw-- libnssutil3.so
0040b000 12 0 0 r-x- libplds4.so
0040e000 4 4 4 rw-- libplds4.so
--- --- --- --- ---
total kB 8232 - - -
ここでAddress,Kbyte,Dirty,RSS,mode,mappingの説明は以下の通りです
拡張およびデバイスフォーマット領域Address:メモリ開始アドレス
Kbytes:メモリ使用バイト数(KB)
RSS:メモリ保持バイト数(KB)
Dirty:ダーティページのバイト数(共有とプライベートを含む)(KB)
Mode:メモリの権限:read、write、execute、shared、private(書き込み時コピー)
Mapping:メモリを消費するファイル、または[anon](割り当てられたメモリ)、または[stack](スタック)
Offset:ファイルオフセット
Device:デバイス名(major:minor)