blog

Linux Pmapコマンド:プロセスが使用しているメモリの量を見る

Pmap はプロセスのメモリマップを提供します。 pmap コマンドは、1 つ以上のプロセスのメモリステータスを表示するために使用されます。プロセスのアドレス空間とメモリ状態に関する情報を報告します。...

Jun 27, 2025 · 4 min. read
シェア

Pmapはプロセスのメモリマップを提供します。pmapコマンドは1つ以上のプロセスのメモリ状態を表示するのに使われます。pmapは実際にはSun OS上のコマンドであり、linuxは限られた機能しかサポートしていません。しかし、完全なプロセスアドレス空間を見るには便利です。見るには、実行中のプロセスのPIDまたは***プロセスIDが必要で、/procまたはtopやpsのような通常のコマンドから得ることができます。

文法

#pmap PID または #pmap [options] PID

出力には、フル・アドレス、kバイト、モード、マッピングが表示されます。

オプション

  • -x extended表示拡張フォーマット
  • -d deviceデバイスの表示形式
  • -q quietヘッダー/フッター行を表示しない
  • -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をスペースで区切って結合することで、マルチプロセスのメモリをチェックできます。

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、マッピングの説明は以下の通りです。

拡張およびデバイスフォーマット領域

  • Address: メモリアドレスの開始
  • Kbytes:使用したメモリのバイト数
  • RSS:予約メモリのバイト数
  • Dirty: ダーティページのバイト数
  • モード:メモリパーミッション:読み取り、書き込み、実行、共有、プライベート
  • マッピング:メモリ占有ファイル、または[anon]、または[stack]。
  • Offset: ファイルオフセット
  • Device:

経由

Read next

Red Hat OpenShift 上でクラウドアプリケーションを設計するには?

OpenShift は Red Hat Enterprise Linux をベースとしており、ベアメタル、仮想サーバー、またはクラウド上で動作します。アプリケーションはPlatform-as-a-Serviceのノード上で実行され、同じPaaS上で実行されるミドルウェアで管理されます。ノードは、Red Hat が「ギア」と呼ぶ Linux コンテナを使用して複数の環境で実行できます。コンテナーは、分離されたプロセスと機能のグループを制御することでコンピュートリソースを割り当て、仮想マシンに似たサービスを提供しますが、オーバーヘッドは少なくなります。

Jun 27, 2025 · 3 min read