pmap - プロセスのアドレス空間に関する情報を表示します
/usr/bin/pmap [-bhrslF] [-A address_range] [--scale[=item1,item2,...]] [pid | core]...
/usr/bin/pmap -L [-bhrslF] [-A address_range] [--scale[=item1,item2,...]] [pid] ...
/usr/bin/pmap -x [-ahslF] [-A address_range] [--scale[=item1,item2,...]] [pid]...
/usr/bin/pmap -S [-ahlF] [-A address_range] [--scale[=item1,item2,...]] [pid | core]...
pmap ユーティリティーは、プロセスのアドレス空間に関する情報を表示します。
サポートしているオプションは、次のとおりです。
共有マッピングの匿名およびスワップ予約を表示します。
表示するアドレス空間のサブレンジを指定します。address_range は、次のいずれかの形式で指定します。
単一のアドレスを指定すると、そのアドレスを含むセグメント (–L オプションが指定されている場合は、ページ) を出力するように制限されます。指定されたアドレスがセグメントの開始アドレスに対応している場合は、–L オプションが指定されていても、常にセグメント全体が出力に含められます。
アドレスの後ろにコンマが付いていて、終了アドレスがない場合は、指定されたアドレスを含むセグメント以降のすべてのセグメント (–L オプションが指定されている場合は、ページ) を出力するように制限されます。
開始アドレスと終了アドレスによって指定されたアドレス範囲によって、出力が、開始アドレスを含むセグメントまたはページから終了アドレスを含むセグメントまたはページまでのすべてのセグメント (–L オプションが存在する場合はページ) に制限されます。
開始アドレスのないコンマで始まるアドレス範囲によって、出力が、存在する最初のセグメントまたはページから指定されたアドレスを含むセグメント (–L オプションが存在する場合はページ) までのすべてのセグメント (–L オプションが存在する場合はページ) に制限されます。
マップファイルの完全なファイルパスではなくベース名を出力します (basename(1) を参照)。
強制。別のプロセスが制御していても、ターゲットプロセスを捕捉します。
詳細は、「使用法」セクションを参照してください。
On output, memory sizes are scaled to a human readable format.The –h option is equivalent to using the –scale=max,1024 option.
未解決の動的リンカーマップ名を表示します。
仮想メモリーを裏打ちする物理メモリーが含まれている lgroup を出力します。
プロセスの予約済みアドレスを表示します。
HAT ページサイズ情報を表示します。
マッピングごとのスワップ予約情報を表示します。詳細は、「使用法」セクションを参照してください。
マッピングごとの追加情報を表示します。詳細は、「使用法」セクションを参照してください。
On output, memory sizes are scaled to a human readable format, for example, 14K, 234M, 2.7G, or 3.0T.Scaling is done by repetitively dividing by 1024, unless otherwise specified.
–scale specified without arguments enables default scaled output, and is equivalent to –scale=max,1024.
–scale can be specified with the following arguments.
Scaling is done by repetitively dividing by a scale factor of 1024.The use of binary scaling is indicated by the addition of an 'i' modifier to the suffix (Ki, Mi, Gi, ...).
Values are scaled to the largest unit for which the result retains a non-zero integer part.Up to 2 decimal places of fractional output may be shown.
Values are scaled to the smallest unit capable of showing the full value within the allotted space of 5 columns, and displayed without the use of fractional output.
Values are scaled to the smallest unit capable of showing the full value within the allotted space of 8 columns, and displayed without the use of fractional output.
Scaling is done by repetitively dividing by a scale factor of 1000.
Scaling is done by repetitively dividing by a scale factor of 1024.
使用法に関するメッセージを出力したあと、すぐに終了します。
pmap ユーティリティーは、プロセスのアドレス空間に関する情報を表示します。
/usr/bin/pmap [ -rslF ] [-A address_range] [ pid | core ] ...
デフォルトでは、pmap は、プロセスにマップされる仮想アドレスの順序で、すべてのマッピングを表示します。マッピングサイズ、フラグ、およびマップされたオブジェクト名が表示されます。
–A オプションを使用すると、指定されたアドレスの範囲への出力を制限できます。指定されたアドレスは、セグメント境界まで切り上げまたは切り下げられ、出力にはそれらのアドレスの範囲内のセグメントが含められます。
/usr/bin/pmap -L [ -rslF ] [-A address_range] pid ...
–L オプションを使用すると、指定された仮想メモリーを裏打ちする物理メモリーを含む lgroup を判別できます。–A オプションを一緒に使用すると、指定されたアドレスは、ページ境界まで切り上げまたは切り下げられ、出力はそれらのアドレスの範囲内のページに制限されます。
これを plgrp(1) と組み合わせて使用すると、目的のスレッドのホーム lgroup がメモリーが配置されている場所と同じであるかどうかや、そのスレッドにメモリー近傍性が存在すべきかどうかを検出できます。lgrpinfo(1) コマンドもこの pmap オプションと一緒に使用すると役に立ちます。It displays the lgroup hierarchy, contents, and characteristics which gives more information about the lgroups that the memory is distributed across and their relationship to each other and any other lgroups of interest.
また、スレッドとメモリーの配置は、plgrp(1), pmadvise (1)、または madv.so.1(1) を使用して変更できます。
/usr/bin/pmap -x [ -aslF ] [-A address_range] [ pid] ...
–x オプションは、マッピングごとの追加情報を表示します。このオプションを指定すると、各マッピングのサイズ、常駐物理メモリー (RSS) の量、匿名メモリーの量、およびロックされたメモリーの量が表示されます。この中には、このプロセスが原因でカーネルアドレス空間によって取得される匿名メモリーは含まれません。
/usr/bin/pmap -S [ -alF ] [-A address_range] [ pid | core ] ...
–S オプションは、マッピングごとのスワップ予約情報を表示します。
–F フラグを使用するときは注意してください。2 つの制御プロセスを 1 つの犠牲プロセスに課すと混乱することがあります。プライマリ制御プロセス (通常はデバッガ) が犠牲プロセスを停止し、かつ問題の proc ツールが適用された時点でプライマリ制御プロセスが何も実行していない場合にのみ、安全性が保証されます。
–s または –L オプションが指定されていないかぎり、プロセス内のマッピングごとに 1 行が出力されます。–s オプションを指定すると、各ハードウェア変換ページサイズの連続するマッピングごとに 1 行が出力されます。–L オプションが指定されている場合は、同じ lgroup に属する隣接するマッピングに対して 1 行が出力されます。–L オプションと –s オプションの両方を指定すると、同じ lgroup に属する各ハードウェア変換ページサイズの連続するマッピングごとに 1 行が出力されます。列ヘッダーは以降の括弧の中に示されています。
出力の最初の列は、各マッピングの開始仮想アドレスを表しています。仮想アドレスは昇順で表示されます。
各マッピングの仮想サイズ (K バイト単位)。See –scale.
ほかのアドレス空間と共有されるものを含む、マッピングごとに常駐する物理メモリーの量 (K バイト単位)。See –scale.
指定されたマッピングに関連付けられている匿名メモリーの (システムページサイズを使用してカウントされた) ページ数。–a オプションを指定しないかぎり、ほかのアドレス空間と共有される匿名メモリーは含まれません。
匿名メモリーは、プロセスヒープ、スタック、および MAP_PRIVATE でマップされたマッピングを持つ「コピーオンライト」ページで報告されます。詳細は、mmap(2) のマニュアルページを参照してください。
マッピング内でロックされたページ数。典型的な例として、mlock() でロックされたメモリーや、SHM_SHARE_MMU で作成された System V 共有メモリーがあります。
仮想メモリーのアクセス権がマッピングごとに表示されます。有効なアクセス権は次のとおりです。
当該プロセスによってマッピングを読み取ることができます。
当該プロセスによってマッピングを書き込むことができます。
当該プロセスによってマッピング内に存在する命令を実行できます。
各マッピングの追加情報を示すフラグが表示される場合があります。
監視されたアドレス空間での変更がマップされたファイルに反映され、マッピングを共有するほかのすべてのプロセスから認識できるように、マッピングが共有されます。
このマッピングは ADI に対して有効です。
このマッピング用のスワップ空間が予約されていません。MAP_NORESERVE で作成されたマッピングと System V ISM 共有メモリーマッピングは、スワップ空間を予約しません。
マッピングにはアクティブなプルーニング要求があり、コアファイルに含めるか除外されます。「I」は含めることを示し、「E」は除外することを示します。
マッピングのデータがコアファイル内に存在しません (コアファイルに適用される場合にのみ該当)。コアファイルの内容の構成については、coreadm(8) のマニュアルページを参照してください。
指定されたマッピングを裏打ちする物理メモリーが含まれている lgroup。
各マッピングの説明名称。表示されるマッピング名の主要なタイプは次のとおりです。
For mappings between a process and a file, the pmap command attempts to resolve the segment name, and file name for each mapping.ファイル名を解決できない場合、pmap はファイルが含まれているデバイスのメジャー番号とマイナー番号、およびファイルのファイルシステム i ノード番号を表示します。
Memory not relating to any named object or file within the file system is reported as [ anon ].
pmap コマンドは、既知のいくつかの匿名メモリーマッピングについては、その一般的な名前を表示します。
マッピングはプロセスヒープです。
マッピングはメインスタックです。
マッピングはスレッド n のスタックです。
マッピングは、スレッド n の代替シグナルスタックとして使用されます。
マッピングの共通名が不明な場合、pmap はマッピング名として [ anon ] を表示します。
Mappings created using System V shared memory system calls are reported with the names shown below:
マッピングは、System V 共有メモリーマッピングです。マッピングの作成に使用された共有メモリー識別子が報告されます。
マッピングは、System V 共有メモリーの「Intimate Shared Memory」バリエーションです。ISM mappings are created with the SHM_SHARE_MMU flag set, in accordance with shmat(2).
マッピングは、ISM のページング可能バリエーションです。Pageable ISM is created with the SHM_PAGEABLE flag set in accordance with shmat(2).
マッピングは ISM の「最適化共有メモリー」(OSM) バリアントで、shmget_osm(2) を使用して作成されました。
Ranges are reported as [ reserved ] and are created to prevent the kernel from choosing addresses within the Reserved range to satisfy non-fixed address memory mapping operations (mmap(2) and shmat(2)).固定アドレスのマッピング操作は予約済み仮想アドレス範囲の上にマップすることができ、その場合はマッピング名が新しいマッピングの名前に変更されます。固定アドレスのマッピングがマップ解除された場合、アドレス範囲は [ reserved ] に戻ります。
ほかのマッピングタイプとは異なり、予約済み仮想アドレス範囲は、仮想アドレスの穴など「無効な」場所も含め、プロセスのアドレス空間の任意の場所に割り当てることができます。詳細は、memcntl(2) の MC_RESERVE_AS を参照してください。
Mappings created by using the CMI API are reported with the names shown below:
このマッピングはローカルの CMI メモリーです。マッピングの作成に使用されたセグメントハンドルが報告されます。
このマッピングはリモートの CMI メモリーです。マッピングの作成に使用されたセグメントハンドルが報告されます。
Mappings of other objects, including devices such as frame buffers.その他のマップされたオブジェクトのマッピング名は表示されません。
このマッピングのハードウェアアドレス変換に使用されるページサイズ (K バイト単位)。See –scale.詳細は、memcntl(2) のマニュアルページを参照してください。
このマッピング用に予約されているスワップ空間の量 (K バイト単位)。つまり、コマンド swap –s で表示される予約可能スワップ空間の合計使用可能プールから差し引かれるスワップ空間。See –scale.詳細は、swap(8) のマニュアルページを参照してください。
デフォルトでは、pmap はターゲットプロセスのアドレス空間内のマッピングごとに 1 行を表示します。次の例では、一般的なシェルのアドレス空間を表示します。
example$ pmap $$ 3585: /usr/bin/ksh 0000000100000000 1728K r-x---- [ text ] /usr/bin/ksh 00000001001B0000 56K r-x---- [ text ] /usr/bin/ksh 00000001002BE000 8K rwx---- [ data ] /usr/bin/ksh 00000001002C0000 64K rwx---- [ data ] /usr/bin/ksh 00000001002D0000 16K rwx---- [ data ] /usr/bin/ksh 0000000100300000 24K rw----- [ bss ] /usr/bin/ksh 0000000EEBFC4000 8K rw----- [ heap ] 0007FCB434C00000 2176K r-x---- [ text ] /lib/sparcv9/libc.so.1 0007FCB434E20000 24K r-x---- [ text ] /lib/sparcv9/libc.so.1 0007FCB434F26000 80K rwx---- [ data ] /lib/sparcv9/libc.so.1 0007FCB434F3A000 40K rwx---- [ data ] /lib/sparcv9/libc.so.1 0007FCB435000000 704K r-x---- [ text ] /lib/sparcv9/libm.so.2 0007FCB4350B0000 56K r-x---- [ text ] /lib/sparcv9/libm.so.2 0007FCB4351BC000 16K rwx---- [ data ] /lib/sparcv9/libm.so.2 0007FCB435200000 256K r-x---- [ text ] /lib/sparcv9/ld.so.1 0007FCB4352F0000 128K rw----- [ anon ] 0007FCB435320000 64K rw----- [ anon ] 0007FCB435340000 8K r------ [ dtrace ] /lib/sparcv9/ld.so.1 0007FCB435370000 128K rw----- [ anon ] 0007FCB4353A0000 128K rw----- [ anon ] 0007FCB4353D0000 128K rw----- [ anon ] 0007FCB435400000 128K rw----- [ anon ] 0007FCB435430000 64K rw----- [ anon ] 0007FCB435442000 24K rwx---- [ data ] /lib/sparcv9/ld.so.1 0007FCB435448000 8K rwx---- [ data ] /lib/sparcv9/ld.so.1 0007FCB435460000 24K rw----- [ anon ] 0007FCB43546E000 8K rw-s--- [ anon ] 0007FCB435472000 8K r--s--- [ anon ] 0007FCB435476000 8K r--s--- [ anon ] 0007FCB43547A000 8K r--s--- [ anon ] 0007FCB43547E000 8K r-x---- [ anon ] FFFFFCFCE72A0000 64K rw----- [ stack ] FFFFFCFCE72B0000 40K rw----- [ stack ] total 6232K使用例 2 メモリー割り当てとマッピングタイプの表示
–x オプションを使用すると、マッピングごとにメモリー割り当てとマッピングタイプに関する情報を表示できます。常駐メモリー、共有されない匿名メモリー、およびロックされたメモリーの量がマッピングごとに表示されます。
example$ pmap -x $$ 4022: /usr/bin/ksh Address Kbytes RSS Anon Lock Mode Mapped File 0000000100000000 1784 1704 - - r-x---- [ text ] ksh 00000001002BE000 88 88 72 - rwx---- [ data ] ksh 0000000100300000 24 16 16 - rw----- [ bss ] ksh 0000006AB975A000 8 - - - rw----- [ heap ] 0007FD56FE400000 2200 2200 - - r-x---- [ text ] libc.so.1 0007FD56FE726000 80 80 80 - rwx---- [ data ] libc.so.1 0007FD56FE73A000 40 24 24 - rwx---- [ data ] libc.so.1 0007FD56FE800000 760 760 - - r-x---- libm.so.2 0007FD56FE9BC000 16 16 16 - rwx---- libm.so.2 0007FD56FEA00000 256 256 - - r-x---- [ text ] ld.so.1 0007FD56FEB40000 8 8 - - r------ [ dtrace ] ld.so.1 0007FD56FEBD0000 64 64 64 - rw----- [ anon ] 0007FD56FEBF0000 128 128 128 - rw----- [ anon ] 0007FD56FEC1C000 8 8 - - rw-s--- [ anon ] 0007FD56FEC20000 128 128 128 - rw----- [ anon ] 0007FD56FEC42000 24 24 24 - rwx---- [ data ] ld.so.1 0007FD56FEC48000 8 8 8 - rwx---- [ data ] ld.so.1 0007FD56FEC60000 128 128 128 - rw----- [ anon ] 0007FD56FEC90000 128 128 128 - rw----- [ anon ] 0007FD56FECC0000 24 16 16 - rw----- [ anon ] 0007FD56FECD0000 64 64 64 - rw----- [ anon ] 0007FD56FECEA000 8 8 - - r--s--- [ anon ] 0007FD56FECEE000 8 8 - - r--s--- [ anon ] 0007FD56FECF2000 8 8 - - r--s--- [ anon ] 0007FD56FECF6000 8 8 - - r-x---- [ anon ] FFFFFD103AE20000 64 64 64 - rw----- [ stack ] FFFFFD103AE30000 24 24 24 - rw----- [ stack ] ---------------- ------ ---- ---- ---- total Kb 6088 5968 984 -
各マッピングの常駐メモリーと匿名メモリーの数字を使用することで、プロセスの各追加インスタンスによって使用される増分メモリーの量を見積もることができます。
前述の例では、シェルプロセスには 5668K バイトの常駐メモリーがあります。ただし、シェルによって使用される大量の物理メモリーは、ほかのプロセスと共有されます。複数のプロセスが同じプログラムを実行する場合、それらのプロセスは互いに可能なかぎり物理メモリーを共有し、共有しない部分については匿名メモリーを割り当てます。前述の例では、2 つ目以降の各シェルプロセスは約 984K バイトの追加物理メモリーを使用します。
異なるマッピングタイプを含むプロセスの出力形式を、より複雑な例で示します。この例では、マッピングは次のとおりです。
実行可能ファイルのテキスト (「maps」プログラムからマップ)
実行可能ファイルのデータ (「maps」プログラムからマップ)
プログラムヒープ
マップファイル (MAP_SHARED でマップ)
マップファイル (MAP_PRIVATE でマップ)
マップファイル (MAP_PRIVATE | MAP_NORESERVE でマップ)
匿名メモリー (/dev/zero をマップして作成)
匿名メモリー (/dev/zero を MAP_NORESERVE でマップして作成)
DISM 共有メモリーマッピング (SHM_PAGEABLE で作成。mlock(3C) 経由で 8M バイトをロック)
DISM 共有メモリーマッピング (SHM_PAGEABLE で作成。ページの 4M バイトを更新)
ISM 共有メモリーマッピング (SHM_SHARE_MMU で作成。ページの更新なし)
ISM 共有メモリーマッピング (SHM_SHARE_MMU で作成)
リモート CMI メモリーマッピング
ローカル CMI メモリーマッピング
example$ pmap -x 4095 4095: ./maps Address Kbytes RSS Anon Lock Mode Mapped File 00010000 8 8 - - r-x---- [ text ] maps 00020000 8 8 8 - rwx---- [ data ] maps 00022000 56 8 8 - rwx---- [ heap ] 03000000 1024 1024 - - rw-s--- dev:533,2 ino:631625786 04000000 1024 1024 512 - rw----- dev:533,2 ino:631625786 05000000 1024 1024 512 - rw--R-- dev:533,2 ino:631625786 06000000 1024 1024 1024 - rw----- [ anon ] 07000000 512 512 512 - rw--R-- [ anon ] 08000000 8192 8192 - 8192 rwxs--- [ dism shmid=0x0 ] 09000000 8192 8192 - - rwxs--- [ dism shmid=0x1 ] 0A000000 8192 8192 - 8192 rwxsR-- [ ism shmid=0x2 ] 0B000000 8192 8192 - 8192 rwxsR-- [ ism shmid=0x3 ] 0C000000 1048576 1048576 - - r--s--- [ cmi cmi_seg=0x3 (remote) ] 0D000000 262144 262144 - - rw-s--- [ cmi cmi_seg=0x2 ] FECA0000 2104 1848 - - r-x---- [ text ] libc.so.1 FEEBE000 48 48 48 - rwx---- [ data ] libc.so.1 FEECA000 24 16 16 - rwx---- [ data ] libc.so.1 FF370000 24 16 16 - rw----- [ anon ] FF380000 240 240 - - r-x---- [ text ] ld.so.1 FF3CC000 8 8 - - r------ [ dtrace ] ld.so.1 FF3D4000 32 24 24 - rw----- [ anon ] FF3DE000 16 16 16 - rwx---- [ data ] ld.so.1 FF3EE000 8 8 - - r--s--- [ anon ] FF3F2000 8 8 - - r--s--- [ anon ] FF3F6000 8 8 - - r--s--- [ anon ] FF3FA000 8 8 - - r-x---- [ anon ] FFBF0000 64 64 64 - rw----- [ stack ] -------- ------- ------- ---- ----- total Kb 40040 39712 2760 24576使用例 3 ページサイズ情報の表示
–s オプションを使用すると、アドレス空間の各部分のハードウェア変換ページサイズを表示できます。(Solaris の複数ページサイズのサポートについては、memcntl(2) を参照してください)。
次の例では、マッピングの大部分が 8K バイトのページサイズを使用していますが、共有メモリーセグメントは 4M バイトのページサイズを使用していることがわかります。
同じページサイズの常駐ページの非連続領域は、別々のマッピングとして報告されます。次の例では、libc.so テキストの一部しか常駐していないため、libc.so ライブラリは複数の別々のマッピングとして報告されます。
example$ pmap -xs 1840 1840: ./maps Address Kbytes RSS Anon Lock Pgsz Mode Mapped File 00010000 8 8 - - 8K r-x---- [ text ] maps 00020000 8 8 8 - 8K rwx---- [ data ] maps 00022000 8 8 8 - 8K rwx---- [ heap ] 00024000 48 - - - - rwx---- [ heap ] 03000000 1024 1024 - - 8K rw-s--- dev:533,2 ino:569519580 04000000 1024 1024 512 - 8K rw----- dev:533,2 ino:569519580 05000000 1024 1024 512 - 8K rw--R-- dev:533,2 ino:569519580 06000000 1024 1024 1024 - 64K rw----- [ anon ] 07000000 512 512 512 - 8K rw--R-- [ anon ] 08000000 8192 8192 - 8192 4M rwxs--- [ dism shmid=0x0 ] 09000000 8192 8192 - - 4M rwxs--- [ dism shmid=0x1 ] 0A000000 8192 8192 - 8192 4M rwxsR-- [ ism shmid=0x2 ] 0B000000 8192 8192 - 8192 4M rwxsR-- [ ism shmid=0x3 ] FECA0000 384 384 - - 64K r-x---- [ text ] libc.so.1 FED00000 256 64 - - - r-x---- [ text ] libc.so.1 FED40000 640 640 - - 64K r-x---- [ text ] libc.so.1 FEDE0000 128 128 - - - r-x---- [ text ] libc.so.1 FEE00000 64 64 - - 64K r-x---- [ text ] libc.so.1 FEE10000 128 64 - - - r-x---- [ text ] libc.so.1 FEE30000 320 320 - - 64K r-x---- [ text ] libc.so.1 FEE80000 128 128 - - - r-x---- [ text ] libc.so.1 FEEA0000 16 16 - - - r-x---- [ text ] libc.so.1 FEEA4000 40 40 - - 8K r-x---- [ text ] libc.so.1 FEEBE000 48 48 48 - 8K rwx---- [ data ] libc.so.1 FEECA000 8 - - - - rwx---- [ data ] libc.so.1 FEECC000 16 16 16 - 8K rwx---- [ data ] libc.so.1 FF370000 16 16 16 - 8K rw----- [ anon ] FF374000 8 - - - - rw----- [ anon ] FF380000 192 192 - - 64K r-x---- [ text ] ld.so.1 FF3B0000 48 48 - - 8K r-x---- [ text ] ld.so.1 FF3CC000 8 8 - - 8K r------ [ dtrace ] ld.so.1 FF3D4000 24 24 24 - 8K rw----- [ anon ] FF3DA000 8 - - - - rw----- [ anon ] FF3DE000 16 16 16 - 8K rwx---- [ data ] ld.so.1 FF3EE000 8 8 - - - r--s--- [ anon ] FF3F2000 8 8 - - - r--s--- [ anon ] FF3F6000 8 8 - - - r--s--- [ anon ] FF3FA000 8 8 - - - r-x---- [ anon ] FFBF0000 64 64 64 - 64K rw----- [ stack ] -------- ------ ----- ---- ----- total Kb 40040 39712 2760 24576使用例 4 スワップ予約の表示
–S オプションを使用すると、プロセスのスワップ予約の内容を表示できます。予約されたスワップ空間の量がプロセス内のマッピングごとに表示されます。共有マッピングのスワップ予約はシステム全体で 1 度しか行われないため、ゼロとして報告されます。
example$ pmap -S 4220 4220: ./maps Address Kbytes Swap Mode Mapped File 00010000 8 - r-x---- [ text ] maps 00020000 8 8 rwx---- [ data ] maps 00022000 56 56 rwx---- [ heap ] 03000000 1024 - rw-s--- dev:533,2 ino:634348912 04000000 1024 1024 rw----- dev:533,2 ino:634348912 05000000 1024 512 rw--R-- dev:533,2 ino:634348912 06000000 1024 1024 rw----- [ anon ] 07000000 512 512 rw--R-- [ anon ] 08000000 8192 - rwxs--- [ dism shmid=0x0 ] 09000000 8192 - rwxs--- [ dism shmid=0x1 ] 0A000000 8192 - rwxsR-- [ ism shmid=0x2 ] 0B000000 8192 - rwxsR-- [ ism shmid=0x3 ] FECA0000 2104 - r-x---- [ text ] libc.so.1 FEEBE000 48 48 rwx---- [ data ] libc.so.1 FEECA000 24 24 rwx---- [ data ] libc.so.1 FF370000 24 24 rw----- [ anon ] FF380000 240 - r-x---- [ text ] ld.so.1 FF3CC000 8 - r------ [ dtrace ] ld.so.1 FF3D4000 32 32 rw----- [ anon ] FF3DE000 16 16 rwx---- [ data ] ld.so.1 FF3EE000 8 - r--s--- [ anon ] FF3F2000 8 - r--s--- [ anon ] FF3F6000 8 - r--s--- [ anon ] FF3FA000 8 - r-x---- [ anon ] FFBF0000 64 64 rw----- [ stack ] -------- ------ ---- total Kb 40040 3344
スワップ予約情報を使用すると、各追加プロセスによって使用される仮想スワップの量を見積もることができます。各プロセスは、大域仮想スワッププールから仮想スワップを消費します。大域スワップ予約は、swap(8) コマンドの「avail」フィールドによって報告されます。
使用例 5 マルチスレッドプロセスでのスタックのラベル付けexample$ pmap 8703 8703: ./stacks 00010000 8K r-x---- [ text ] /tmp/stacks 00020000 8K rwx---- [ data ] /tmp/stacks 00022000 56K rwx---- [ heap ] FE79A000 8K rw--R-- [ stack tid=11 ] FE89A000 8K rw--R-- [ stack tid=10 ] FE99A000 8K rw--R-- [ stack tid=9 ] FEA9A000 8K rw--R-- [ stack tid=8 ] FEB9A000 8K rw--R-- [ stack tid=7 ] FEC9A000 8K rw--R-- [ stack tid=6 ] FECA0000 2048K r-x---- [ text ] /lib/libc.so.1 FEEA0000 56K r-x---- [ text ] /lib/libc.so.1 FEEBE000 48K rwx---- [ data ] /lib/libc.so.1 FEECA000 24K rwx---- [ data ] /lib/libc.so.1 FEFFA000 8K rw--R-- [ stack tid=5 ] FF0FA000 8K rw--R-- [ stack tid=4 ] FF1FA000 8K rw--R-- [ stack tid=3 ] FF200000 64K rw----- [ anon ] FF31A000 8K rw--R-- [ stack tid=2 ] FF320000 64K rw----- [ anon ] FF340000 128K rw----- [ anon ] FF370000 24K rw----- [ anon ] FF380000 192K r-x---- [ text ] /lib/ld.so.1 FF3B0000 48K r-x---- [ text ] /lib/ld.so.1 FF3C8000 8K rw----- [ altstack tid=8 ] FF3CC000 8K r------ [ dtrace ] /lib/ld.so.1 FF3D4000 32K rw----- [ anon ] FF3DE000 16K rwx---- [ data ] /lib/ld.so.1 FF3E6000 8K rw----- [ altstack tid=4 ] FF3EA000 8K rw-s--- [ anon ] FF3EE000 8K r--s--- [ anon ] FF3F2000 8K r--s--- [ anon ] FF3F6000 8K r--s--- [ anon ] FF3FA000 8K r-x---- [ anon ] FFBF0000 64K rw----- [ stack ]使用例 6 lgroup メモリーの割り当ての表示
次の例では、lgroup メモリーの割り当てをマッピングごとに表示します。
example$ pmap -bL `pgrep nscd` 8629: /usr/sbin/nscd 000000B8886D6000 8K rw----- - [ heap ] 000000B8886D8000 32K rw----- 2 [ heap ] 000000B8886E0000 64K rw----- 2 [ heap ] 000000B8886F0000 256K rw----- 1 [ heap ] ... 0007FE2990700000 64K r-x---- 1 [ text ] libucrypto.so.1 0007FE2990710000 64K r-x---- 2 [ data ] libucrypto.so.1 ... 0007FE2995200000 8K r-x---- 1 [ text ] nss_dns.so.1 0007FE2995202000 16K r-x---- 2 [ text ] nss_dns.so.1 0007FE2995306000 8K rwx---- 2 [ data ] nss_dns.so.1 ... 0007FE2995800000 64K r-x---- 2 [ text ] nss_ldap.so.1 0007FE2995810000 16K r-x---- 2 [ text ] nss_ldap.so.1 0007FE2995914000 8K rwx---- 2 [ data ] nss_ldap.so.1 ... 0007FE2995C00000 16K r-x---- 1 [ text ] nss_files.so.1 0007FE2995C04000 32K r-x---- 2 [ text ] nss_files.so.1 0007FE2995D0C000 8K rwx---- 2 [ data ] nss_files.so.1 ... 0007FE2997300000 192K r-x---- 1 [ text ] ld.so.1 0007FE2997330000 64K r-x---- 2 [ text ] ld.so.1 0007FE2997440000 8K r------ - [ dtrace ] ld.so.1 0007FE2997542000 24K rwx---- 2 [ data ] ld.so.1 0007FE2997548000 8K rwx---- 2 [ data ] ld.so.1 0007FE2997600000 64K r-x---- 1 [ text ] nscd 0007FE2997610000 64K r-x---- 2 [ text ] nscd 0007FE2997620000 64K r-x---- 1 [ text ] nscd 0007FE2997630000 16K r-x---- - [ text ] nscd ... 0007FE2997734000 32K rwx---- 2 [ data ] nscd ... 0007FE299777C000 8K rw-s--- 2 [ anon ] 0007FE2997780000 64K rw----- 2 [ anon ] 0007FE2997796000 8K r-x---- - [ anon ] 0007FE299779E000 8K r--s--- 1 [ anon ] 0007FE29977A2000 8K r--s--- 1 [ anon ] 0007FE29977A6000 8K r--s--- - [ anon ] FFFFFE5DEF5F0000 16K rw----- - [ stack ] FFFFFE5DEF5F4000 8K rw----- 2 [ stack ] total 177264K
次の終了ステータスが返されます。
正常終了。
エラーが発生しました。
プロセスファイル
proc ツールサポートファイル
属性についての詳細は、マニュアルページの attributes(7) を参照してください。
|
コマンドの構文は「確実」です。–L オプションおよび出力形式は「不確実」です。
basename(1), ldd(1), lgrpinfo(1), madv.so.1(1), mdb(1), plgrp(1), pmadvise(1), proc(1), ps(1), memcntl(2), meminfo(2), mlock(3C), mmap(2), shmget_osm(2), shmop(2), dlopen(3C), proc(5), attributes(7), cmi(7), coreadm(8), prstat(8), swap(8)
Core files do not contain all the information present in the live running image of a process.For example, a segment of memory, reported by pmap as ISM in a running process, may be reported as heap when pmap is run against a core file from the same process.