Linux pmapコマンドは、1つまたは複数のプロセスのメモリ使用量マップを表示します。 Pmapは、プロセスのアドレス空間またはメモリ使用量マップに関する情報を報告します。
Pmapは実際にはSunOSコマンドであり、Linuxは非常に限られた数の機能しかサポートしていません。ただし、プロセスの完全なアドレス空間を見つけるのに非常に役立ちます。プロセスのメモリ使用量を確認するには、実行中のプロセスのPIDまたは一意のプロセスIDが必要です。/procまたはtopやpsなどの通常のコマンドからPIDを取得できます。
psとtopコマンドを使用したプロセスメモリチェックについては前に説明しましたが、このチュートリアルでは、pmapコマンドの使用方法を説明します。
使用構文
pmapコマンドの基本的な構文を確認しましょう。
# pmap PID
または
# pmap [options] PID
出力には、合計アドレス、キロバイト、モード、およびマッピングが表示されます。
オプション
-x extended Show the extended format.
-d device Show the device format.
-q quiet Do not display some header/footer lines.
-V show version Displays version of program.
1)単一プロセスのメモリ使用量マップ
単一プロセスのメモリ使用量を確認するには、mapコマンドの後にPID番号を使用します。
pmapの例を確認しましょう:
# 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
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
2)複数のプロセスのメモリ使用量マップ
複数のPIDを挿入することで、複数のプロセスのメモリマップを確認できます。そのためには、スペースを追加して複数のPIDを追加します。
# pmap 1013 1217 1118
3)プロセスに関する拡張メモリマップ
プロセスの拡張メモリ情報を出力するには、-x
を使用します オプション。ここで、アドレス、キロバイト、ダーティ、RSS、モード、およびマッピングには、以下の情報が含まれています。
拡張およびデバイスフォーマットフィールド
Address: start address of map
Kbytes: size of map in kilobytes
RSS: resident set size in kilobytes
Dirty: dirty pages (both shared and private) in kilobytes
Mode: permissions on map: read, write, execute, shared, private (copy on write)
Mapping: file backing the map, or '[ anon ]' for allocated memory, or '[ stack ]' for the program stack
Offset: offset into the file
Device: device name (major:minor)
# 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 - - -
結論
このチュートリアルでは、pmapコマンドを使用してメモリ情報の単一および複数のプロセスをチェックする方法を学習します。ご質問やご意見がございましたら、お気軽にコメントをお寄せください。