JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
マニュアルページセクション 1: ユーザーコマンド     Oracle Solaris 11.1 Information Library (日本語)
このドキュメントの評価
search filter icon
search icon

ドキュメントの情報

はじめに

紹介

User Commands

acctcom(1)

adb(1)

addbib(1)

admin(1)

alias(1)

allocate(1)

amt(1)

appcert(1)

apptrace(1)

apropos(1)

ar(1)

arch(1)

as(1)

asa(1)

at(1)

atq(1)

atrm(1)

audioconvert(1)

audioctl(1)

audioplay(1)

audiorecord(1)

audiotest(1)

auths(1)

auto_ef(1)

awk(1)

banner(1)

basename(1)

basename(1B)

batch(1)

bc(1)

bdiff(1)

bfs(1)

bg(1)

biff(1B)

break(1)

builtin(1)

cal(1)

calendar(1)

case(1)

cat(1)

cd(1)

cdc(1)

cdrw(1)

chdir(1)

checkeq(1)

checknr(1)

chgrp(1)

chkey(1)

chmod(1)

chown(1)

chown(1B)

ckdate(1)

ckgid(1)

ckint(1)

ckitem(1)

ckkeywd(1)

ckpath(1)

ckrange(1)

ckstr(1)

cksum(1)

cktime(1)

ckuid(1)

ckyorn(1)

clear(1)

cmp(1)

col(1)

comb(1)

comm(1)

command(1)

compress(1)

continue(1)

cp(1)

cpio(1)

cpp(1)

cputrack(1)

crle(1)

crontab(1)

csh(1)

csplit(1)

ct(1C)

ctags(1)

ctrun(1)

ctstat(1)

ctwatch(1)

cu(1C)

cut(1)

date(1)

dc(1)

deallocate(1)

decrypt(1)

delta(1)

deroff(1)

df(1B)

dhcpinfo(1)

diff(1)

diff3(1)

diffmk(1)

digest(1)

digestp(1)

dircmp(1)

dirname(1)

dirs(1)

dis(1)

disown(1)

dispgid(1)

dispuid(1)

dos2unix(1)

dpost(1)

du(1)

du(1B)

dump(1)

dumpcs(1)

dumpkeys(1)

echo(1)

echo(1B)

ed(1)

edit(1)

egrep(1)

eject(1)

elfdump(1)

elfedit(1)

elffile(1)

elfsign(1)

elfwrap(1)

encrypt(1)

enhance(1)

env(1)

eqn(1)

errange(1)

errdate(1)

errgid(1)

errint(1)

erritem(1)

error(1)

errpath(1)

errstr(1)

errtime(1)

erruid(1)

erryorn(1)

eval(1)

ex(1)

exec(1)

exit(1)

expand(1)

export(1)

exportfs(1B)

expr(1)

expr(1B)

exstr(1)

factor(1)

false(1)

fastboot(1B)

fasthalt(1B)

fc(1)

fg(1)

fgrep(1)

file(1)

file(1B)

filebench(1)

filep(1)

filesync(1)

filofaxp(1)

find(1)

finger(1)

fmt(1)

fmtmsg(1)

fold(1)

for(1)

foreach(1)

franklinp(1)

from(1B)

ftp(1)

function(1)

gcore(1)

gencat(1)

geniconvtbl(1)

genmsg(1)

get(1)

getconf(1)

getfacl(1)

getlabel(1)

getopt(1)

getoptcvt(1)

getopts(1)

gettext(1)

gettxt(1)

getzonepath(1)

glob(1)

goto(1)

gprof(1)

grep(1)

groups(1)

groups(1B)

grpck(1B)

hash(1)

hashcheck(1)

hashmake(1)

hashstat(1)

head(1)

helpdate(1)

helpgid(1)

helpint(1)

helpitem(1)

helppath(1)

helprange(1)

helpstr(1)

helptime(1)

helpuid(1)

helpyorn(1)

hist(1)

history(1)

hostid(1)

hostname(1)

i386(1)

i486(1)

iconv(1)

if(1)

indxbib(1)

install(1B)

ipcrm(1)

ipcs(1)

isainfo(1)

isalist(1)

jobs(1)

join(1)

jsh(1)

kbd(1)

kdestroy(1)

keylogin(1)

keylogout(1)

kill(1)

kinit(1)

klist(1)

kmdb(1)

kmfcfg(1)

kpasswd(1)

krb5-config(1)

ksh(1)

ksh88(1)

ksh93(1)

ktutil(1)

kvno(1)

lari(1)

last(1)

lastcomm(1)

ld(1)

ldapadd(1)

ldapdelete(1)

ldaplist(1)

ldapmodify(1)

ldapmodrdn(1)

ldapsearch(1)

ldd(1)

ld.so.1(1)

let(1)

lex(1)

lgrpinfo(1)

limit(1)

line(1)

list_devices(1)

listusers(1)

llc2_autoconfig(1)

llc2_config(1)

llc2_stats(1)

ln(1)

ln(1B)

loadkeys(1)

locale(1)

localedef(1)

logger(1)

logger(1B)

login(1)

logname(1)

logout(1)

look(1)

lookbib(1)

lorder(1)

ls(1)

ls(1B)

m4(1)

mac(1)

mach(1)

machid(1)

madv.so.1(1)

mail(1)

Mail(1B)

mail(1B)

mailcompat(1)

mailp(1)

mailq(1)

mailstats(1)

mailx(1)

make(1S)

makekey(1)

man(1)

mconnect(1)

mcs(1)

mdb(1)

mesg(1)

mkdir(1)

mkmsgs(1)

mkstr(1B)

mktemp(1)

moe(1)

more(1)

mp(1)

mpss.so.1(1)

msgcc(1)

msgcpp(1)

msgcvt(1)

msgfmt(1)

msggen(1)

msgget(1)

mt(1)

mv(1)

nawk(1)

nc(1)

ncab2clf(1)

ncakmod(1)

neqn(1)

netcat(1)

newform(1)

newgrp(1)

newsp(1)

newtask(1)

nice(1)

nl(1)

nm(1)

nohup(1)

notify(1)

nroff(1)

od(1)

on(1)

onintr(1)

optisa(1)

pack(1)

packagemanager(1)

page(1)

pagesize(1)

pargs(1)

passwd(1)

paste(1)

patch(1)

pathchk(1)

pax(1)

pcat(1)

pcred(1)

perl(1)

pfbash(1)

pfcsh(1)

pfexec(1)

pfiles(1)

pfksh(1)

pflags(1)

pfsh(1)

pftcsh(1)

pfzsh(1)

pg(1)

pgrep(1)

pkcs11_inspect(1)

pkg(1)

pkgdepend(1)

pkgdiff(1)

pkgfmt(1)

pkginfo(1)

pkglint(1)

pkgmerge(1)

pkgmk(1)

pkgmogrify(1)

pkgparam(1)

pkgproto(1)

pkgrecv(1)

pkgrepo(1)

pkgsend(1)

pkgsign(1)

pkgtrans(1)

pkill(1)

pklogin_finder(1)

pktool(1)

plabel(1)

pldd(1)

plgrp(1)

plimit(1)

pmadvise(1)

pmap(1)

pm-updatemanager(1)

popd(1)

ppgsz(1)

ppriv(1)

pr(1)

praliases(1)

prctl(1)

preap(1)

print(1)

printenv(1B)

printf(1)

priocntl(1)

proc(1)

prof(1)

profiles(1)

projects(1)

prs(1)

prt(1)

prun(1)

ps(1)

ps(1B)

psig(1)

pstack(1)

pstop(1)

ptime(1)

ptree(1)

pushd(1)

pvs(1)

pwait(1)

pwd(1)

pwdx(1)

radadrgen(1)

ranlib(1)

rcapstat(1)

rcp(1)

read(1)

readonly(1)

red(1)

refer(1)

regcmp(1)

rehash(1)

remote_shell(1)

remsh(1)

renice(1)

repeat(1)

reset(1B)

return(1)

rksh(1)

rksh88(1)

rlogin(1)

rm(1)

rmail(1)

rmdel(1)

rmdir(1)

rmformat(1)

rmmount(1)

rmumount(1)

roffbib(1)

roles(1)

rpcgen(1)

rpm2cpio(1)

rsh(1)

runat(1)

rup(1)

rup(1C)

ruptime(1)

rusage(1B)

rusers(1)

rwho(1)

sact(1)

sar(1)

sccs(1)

sccs-admin(1)

sccs-cdc(1)

sccs-comb(1)

sccs-delta(1)

sccsdiff(1)

sccs-get(1)

sccs-help(1)

sccshelp(1)

sccs-prs(1)

sccs-prt(1)

sccs-rmdel(1)

sccs-sact(1)

sccs-sccsdiff(1)

sccs-unget(1)

sccs-val(1)

scp(1)

script(1)

sdiff(1)

sed(1)

sed(1B)

select(1)

set(1)

setenv(1)

setfacl(1)

setlabel(1)

setpgrp(1)

settime(1)

sftp(1)

sh(1)

shcomp(1)

shell_builtins(1)

shift(1)

shutdown(1B)

size(1)

sleep(1)

soelim(1)

sort(1)

sortbib(1)

sotruss(1)

source(1)

sparc(1)

spell(1)

spellin(1)

split(1)

srchtxt(1)

ssh(1)

ssh-add(1)

ssh-agent(1)

ssh-http-proxy-connect(1)

ssh-keygen(1)

ssh-keyscan(1)

ssh-socks5-proxy-connect(1)

stop(1)

strchg(1)

strconf(1)

strings(1)

strip(1)

stty(1)

stty(1B)

sum(1)

sum(1B)

sun(1)

suspend(1)

svcprop(1)

svcs(1)

switch(1)

symorder(1)

sys-suspend(1)

sysV-make(1)

t300(1)

t300s(1)

t4014(1)

t450(1)

tabs(1)

tail(1)

talk(1)

tar(1)

tbl(1)

tcopy(1)

tee(1)

tek(1)

telnet(1)

test(1)

test(1B)

tftp(1)

time(1)

timemanp(1)

times(1)

timesysp(1)

timex(1)

tip(1)

touch(1)

touch(1B)

tplot(1)

tput(1)

tr(1)

tr(1B)

trap(1)

troff(1)

true(1)

truss(1)

tset(1B)

tsort(1)

tty(1)

type(1)

typeset(1)

ul(1)

ulimit(1)

umask(1)

unalias(1)

uname(1)

uncompress(1)

unexpand(1)

unget(1)

unhash(1)

unifdef(1)

uniq(1)

units(1)

unix2dos(1)

unlimit(1)

unpack(1)

unset(1)

unsetenv(1)

until(1)

updatehome(1)

uptime(1)

userattr(1)

users(1B)

uucp(1C)

uudecode(1C)

uuencode(1C)

uuglist(1C)

uulog(1C)

uuname(1C)

uupick(1C)

uustat(1C)

uuto(1C)

uux(1C)

vacation(1)

val(1)

valdate(1)

valgid(1)

valint(1)

valpath(1)

valrange(1)

valstr(1)

valtime(1)

valuid(1)

valyorn(1)

vc(1)

vedit(1)

ver(1)

vgrind(1)

vi(1)

view(1)

vipw(1B)

volcheck(1)

volrmmount(1)

w(1)

wait(1)

wc(1)

what(1)

whatis(1)

whence(1)

whereis(1B)

which(1)

while(1)

who(1)

whoami(1B)

whocalls(1)

whois(1)

write(1)

xargs(1)

xgettext(1)

xstr(1)

yacc(1)

yes(1)

ypcat(1)

ypmatch(1)

yppasswd(1)

ypwhich(1)

zcat(1)

zlogin(1)

zonename(1)

zonestat(1)

ドキュメントの品質向上のためのご意見をください
簡潔すぎた
読みづらかった、または難し過ぎた
重要な情報が欠けていた
内容が間違っていた
翻訳版が必要
その他
Your rating has been updated
貴重なご意見を有り難うございました!

あなたの貴重なご意見はより良いドキュメント作成の手助けとなります 内容の品質向上と追加コメントのためのアンケートに参加されますか?

pmap

- プロセスのアドレス空間に関する情報の表示

形式

/usr/bin/pmap [-rslF] [-A address_range] [pid | core]...
/usr/bin/pmap -L [-rslF] [-A address_range] [pid] ...
/usr/bin/pmap -x [-aslF] [-A address_range] [pid | core]...
/usr/bin/pmap -S [-alF] [-A address_range] [pid | core]...

機能説明

pmap ユーティリティーは、プロセスのアドレス空間に関する情報を表示します。

オプション

サポートしているオプションは、次のとおりです。

-a

共有マッピングの匿名およびスワップ予約を表示します。

-A address_range

表示するアドレス空間のサブレンジを指定します。address_range は、次のいずれかの形式で指定します。

start_addr

単一のアドレスを指定すると、そのアドレスを含むセグメント (-L オプションが指定されている場合は、ページ) を出力するように制限されます。指定されたアドレスがセグメントの開始アドレスに対応している場合は、-L オプションが指定されていても、常にセグメント全体が出力に含められます。

start_addr,

アドレスの後ろにコンマが付いていて、終了アドレスがない場合は、指定されたアドレスを含むセグメント以降のすべてのセグメント (-L オプションが指定されている場合は、ページ) を出力するように制限されます。

start_addr,end_addr

開始アドレスと終了アドレスによって指定されたアドレスの範囲の場合は、開始アドレスを含むセグメントまたはページから、終了アドレスを含むセグメントまたはページまでのすべてのセグメント (-L オプションが指定されている場合は、ページ) を出力するように制限されます。

,end_addr

アドレスの範囲がコンマから始まり、開始アドレスがない場合は、最初のセグメントから、指定されたアドレスを含むセグメント (-L オプションが指定されている場合は、ページ) までのすべてのセグメント (-L オプションが指定されている場合は、ページ) を出力するように制限されます。

-F

強制。別のプロセスが制御していても、ターゲットプロセスを捕捉します。

使用法」を参照してください。

-l

未解決の動的リンカーマップ名を表示します。

-L

仮想メモリーを戻す物理メモリーが含まれている lgroup を出力します。

-r

プロセスの予約済みアドレスを表示します。

-s

HAT ページサイズ情報を表示します。

-S

マッピングごとのスワップ予約情報を表示します。詳細は、「使用法」を参照してください。

-x

マッピングごとの追加情報を表示します。詳細は、「使用法」を参照してください。

使用法

pmap ユーティリティーは、プロセスのアドレス空間に関する情報を表示します。

プロセスマッピング
/usr/bin/pmap [ -rslF ] [-A address_range] [ pid | core ] ...

デフォルトでは、pmap は、プロセスにマップされる仮想アドレスの順序で、すべてのマッピングを表示します。マッピングサイズ、フラグ、およびマップされたオブジェクト名が表示されます。

-A オプションを使用すると、指定されたアドレスの範囲への出力を制限できます。指定されたアドレスは、セグメント境界まで切り上げまたは切り下げられ、出力にはそれらのアドレスの範囲内のセグメントが含められます。

プロセス Lgroup マッピング
/usr/bin/pmap -L [ -rslF ] [-A address_range] pid ...

-L オプションを使用すると、指定された仮想メモリーを戻す物理メモリーを含む lgroup を判別できます。-A オプションを一緒に使用すると、指定されたアドレスは、ページ境界まで切り上げまたは切り下げられ、出力はそれらのアドレスの範囲内のページに制限されます。

これは、plgrp(1) と組み合わせて使用すると、目的のスレッドのホーム lgroup がメモリーが配置されている場所と同じであるかどうか、およびスレッドにメモリーの局所性があるかどうかを確認できます。lgrpinfo(1) コマンドもこの pmap オプションと一緒に使用すると役に立ちます。これは、メモリーが配分される lgroup についての詳細な情報が得られる lgroup 階層、コンテンツ、および特性や、それらの lgroup 同士の関係およびその他の lgroup との関係を表示します。

また、スレッドとメモリーの配置は、plgrp(1), pmadvise(1)、または madv.so.1(1) を使用して変更できます。

プロセスの匿名またはロックされたマッピングの詳細
/usr/bin/pmap -x [ -aslF ] [-A address_range] [ pid | core ] ...

-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 行が出力されます。列ヘッダーは以降の括弧の中に示されています。

仮想アドレス (Address)

出力の最初の列は、各マッピングの開始仮想アドレスを表しています。仮想アドレスは昇順で表示されます。

仮想マッピングサイズ (Kbytes)

各マッピングの仮想サイズ (K バイト単位)。

常駐物理メモリー (RSS)

ほかのアドレス空間と共有されるものを含む、マッピングごとに常駐する物理メモリーの量 (K バイト単位)。

匿名メモリー (Anon)

指定されたマッピングに関連付けられている匿名メモリーの (システムページサイズを使用してカウントされた) ページ数。-a オプションを指定しないかぎり、ほかのアドレス空間と共有される匿名メモリーは含まれません。

匿名メモリーは、プロセスのヒープおよびスタックに関して、また MAP_PRIVATE (mmap(2) を参照) でマップされたマッピングを含む「書き込み時コピー」ページに関して報告されます。

ロック (Locked)

マッピング内でロックされたページ数。典型的な例として、mlock() でロックされたメモリーや、SHM_SHARE_MMU で作成された System V 共有メモリーがあります。

アクセス権/フラグ (Mode)

仮想メモリーのアクセス権がマッピングごとに表示されます。有効なアクセス権は次のとおりです。

r:

当該プロセスによってマッピングを読み取ることができます。

w:

当該プロセスによってマッピングを書き込むことができます。

x:

当該プロセスによってマッピング内に存在する命令を実行できます。

各マッピングの追加情報を示すフラグが表示される場合があります。

s:

監視されたアドレス空間での変更がマップされたファイルに反映され、マッピングを共有するほかのすべてのプロセスから認識できるように、マッピングが共有されます。

R:

このマッピング用のスワップ空間が予約されていません。MAP_NORESERVE で作成されたマッピングと System V ISM 共有メモリーマッピングは、スワップ空間を予約しません。

*:

マッピングのデータがコアファイル内に存在しません (コアファイルに適用される場合にのみ該当)。コアファイルコンテンツの構成については、coreadm(1M) を参照してください。

Lgroup (Lgrp)

指定されたマッピングを戻す物理メモリーが含まれている lgroup。

マッピング名 (Mapped File)

各マッピングの説明名称。表示されるマッピング名の主要なタイプは次のとおりです。

  • マップされたファイル: プロセスとファイル間のマッピングでは、pmap コマンドはマッピングごとにファイル名の解決を試みます。ファイル名を解決できない場合、pmap はファイルが含まれているデバイスのメジャー番号とマイナー番号、およびファイルのファイルシステム i ノード番号を表示します。

  • 匿名メモリー: ファイルシステム内のどの名前付きオブジェクトまたはファイルにも関連しないメモリーは [ anon ] として報告されます。

    pmap コマンドは、既知のいくつかの匿名メモリーマッピングについては、その一般的な名前を表示します。

    [ heap ]

    マッピングはプロセスヒープです。

    [ stack ]

    マッピングはメインスタックです。

    [ stack tid=n ]

    マッピングはスレッド n のスタックです。

    [ altstack tid=n ]

    マッピングは、スレッド n の代替シグナルスタックとして使用されます。

    マッピングの共通名が不明な場合、pmap はマッピング名として [ anon ] を表示します。

  • System V 共有メモリー: System V 共有メモリーシステムコールを使用して作成されたマッピングは、次に示す名前で報告されます。

    shmid=n:

    マッピングは、System V 共有メモリーマッピングです。マッピングの作成に使用された共有メモリー識別子が報告されます。

    ism shmid=n:

    マッピングは、System V 共有メモリーの「Intimate Shared Memory」バリエーションです。ISM マッピングは、shmat(2) (shmop(2) を参照) に従って、設定されている SHM_SHARE_MMU フラグを使って作成されます。

    dism shmid=n:

    マッピングは、ISM のページング可能バリエーションです。ページング可能な ISM は、shmat(2) (shmop(2) を参照) に従って、設定されている SHM_PAGEABLE フラグを使って作成されます。

  • その他: フレームバッファーなどのデバイスを含む、その他のオブジェクトのマッピング。その他のマップされたオブジェクトのマッピング名は表示されません。

ページサイズ (Pgsz)

このマッピングのハードウェアアドレス変換に使用されるページサイズ (K バイト単位)。詳細は、memcntl(2) を参照してください。

スワップ空間 (Swap)

このマッピング用に予約されているスワップ空間の量 (K バイト単位)。つまり、コマンド swap -s で表示される予約可能スワップ空間の合計使用可能プールから差し引かれるスワップ空間。swap(1M) を参照してください。

使用例

例 1 プロセスマッピングの表示

デフォルトでは、pmap はターゲットプロセスのアドレス空間内のマッピングごとに 1 行を表示します。次の例では、一般的な Bourne シェルのアドレス空間を表示します。

example$ pmap 102905
102905:    sh
00010000    192K r-x--  /usr/bin/ksh
00040000      8K rwx--  /usr/bin/ksh
00042000     40K rwx--    [ heap ]
FF180000    664K r-x--  /usr/lib/libc.so.1
FF236000     24K rwx--  /usr/lib/libc.so.1
FF23C000      8K rwx--  /usr/lib/libc.so.1
FF250000      8K rwx--    [ anon ]
FF260000     16K r-x--  /usr/lib/en_US.ISO8859-1.so.2
FF272000     16K rwx--  /usr/lib/en_US.ISO8859-1.so.2
FF280000    560K r-x--  /usr/lib/libnsl.so.1
FF31C000     32K rwx--  /usr/lib/libnsl.so.1
FF324000     32K rwx--  /usr/lib/libnsl.so.1
FF350000     16K r-x--  /usr/lib/libmp.so.2
FF364000      8K rwx--  /usr/lib/libmp.so.2
FF380000     40K r-x--  /usr/lib/libsocket.so.1
FF39A000      8K rwx--  /usr/lib/libsocket.so.1
FF3A0000      8K r-x--  /usr/lib/libdl.so.1
FF3B0000      8K rwx--    [ anon ]
FF3C0000    152K r-x--  /usr/lib/ld.so.1
FF3F6000      8K rwx--  /usr/lib/ld.so.1
FFBFC000     16K rw---    [ stack ]
 total     1864

例 2 メモリー割り当てとマッピングタイプの表示

-x オプションを使用すると、マッピングごとにメモリー割り当てとマッピングタイプに関する情報を表示できます。常駐メモリー、非共有匿名メモリー、およびロックされたメモリーの量がマッピングごとに表示されます。

example$ pmap -x 102908
102908:   sh
Address   Kbytes     RSS    Anon  Locked Mode   Mapped File
00010000      88      88       -       - r-x--  sh
00036000       8       8       8       - rwx--  sh
00038000      16      16      16       - rwx--    [ heap ]
FF260000      16      16       -       - r-x--  en_US.ISO8859-1.so.2
FF272000      16      16       -       - rwx--  en_US.ISO8859-1.so.2
FF280000     664     624       -       - r-x--  libc.so.1
FF336000      32      32       8       - rwx--  libc.so.1
FF380000      24      24       -       - r-x--  libgen.so.1
FF396000       8       8       -       - rwx--  libgen.so.1
FF3A0000       8       8       -       - r-x--  libdl.so.1
FF3B0000       8       8       8       - rwx--    [ anon ]
FF3C0000     152     152       -       - r-x--  ld.so.1
FF3F6000       8       8       8       - rwx--  ld.so.1
FFBFE000       8       8       8       - rw---    [ stack ]
--------   -----   -----   -----   ------
total Kb    1056    1016      56       -

各マッピングの常駐メモリーと匿名メモリーの数字を使用することで、プロセスの各追加インスタンスによって使用される増分メモリーの量を見積もることができます。

前述の例では、Bourne シェルには 1032K バイトの常駐メモリーがあります。ただし、シェルによって使用される大量の物理メモリーは、シェルのほかのインスタンスと共有されます。シェルの別の同一インスタンスは、可能であればほかのシェルと物理メモリーを共有し、非共有部分には匿名メモリーを割り当てます。前述の例では、2 つめ以降の各 Bourne シェルは約 56K バイトの追加物理メモリーを使用します。

異なるマッピングタイプを含むプロセスの出力形式を、より複雑な例で示します。この例では、マッピングは次のとおりです。

0001000: Executable text, mapped from 'maps' program

0002000: Executable data, mapped from 'maps' program

0002200: Program heap


0300000: A mapped file, mapped MAP_SHARED
0400000: A mapped file, mapped MAP_PRIVATE

0500000: A mapped file, mapped MAP_PRIVATE | MAP_NORESERVE

0600000: Anonymous memory, created by mapping /dev/zero

0700000: Anonymous memory, created by mapping /dev/zero
         with MAP_NORESERVE

0800000: A DISM shared memory mapping, created with SHM_PAGEABLE
         with 8MB locked via mlock(2)

0900000: A DISM shared memory mapping, created with SHM_PAGEABLE,
         with 4MB of its pages touched.

0A00000: A DISM shared memory mapping, created with SHM_PAGEABLE,
         with none of its pages touched.

0B00000: An ISM shared memory mapping, created with SHM_SHARE_MMU
example$ pmap -x 15492
15492:  ./maps
 Address  Kbytes     RSS    Anon  Locked Mode   Mapped File
00010000       8       8       -       - r-x--  maps
00020000       8       8       8       - rwx--  maps
00022000   20344   16248   16248       - rwx--    [ heap ]
03000000    1024    1024       -       - rw-s-  dev:0,2 ino:4628487
04000000    1024    1024     512       - rw---  dev:0,2 ino:4628487
05000000    1024    1024     512       - rw--R  dev:0,2 ino:4628487
06000000    1024    1024    1024       - rw---    [ anon ]
07000000     512     512     512       - rw--R    [ anon ]
08000000    8192    8192       -    8192 rwxs-    [ dism shmid=0x5]
09000000    8192    4096       -       - rwxs-    [ dism shmid=0x4]
0A000000    8192    8192       -    8192 rwxsR    [ ism shmid=0x2 ]
0B000000    8192    8192       -    8192 rwxsR    [ ism shmid=0x3 ]
FF280000     680     672       -       - r-x--  libc.so.1
FF33A000      32      32      32       - rwx--  libc.so.1
FF3A0000       8       8       -       - r-x--  libdl.so.1
FF3B0000       8       8       8       - rwx--    [ anon ]
FF3C0000     152     152       -       - r-x--  ld.so.1
FF3F6000       8       8       8       - rwx--  ld.so.1
FFBFA000      24      24      24       - rwx--    [ stack ]
-------- ------- ------- ------- -------
total Kb   50456   42256   18888   16384

例 3 ページサイズ情報の表示

-s オプションを使用すると、アドレス空間の各部分のハードウェア変換ページサイズを表示できます。(Solaris の複数ページサイズのサポートについては、memcntl(2) を参照してください。)

次の例では、マッピングの大部分が 8K バイトのページサイズを使用していますが、ヒープは 4M バイトのページサイズを使用していることがわかります。

同じページサイズの常駐ページの非連続領域は、別々のマッピングとして報告されます。次の例では、libc.so テキストの一部しか常駐していないため、libc.so ライブラリは複数の別々のマッピングとして報告されます。

example$ pmap -xs 15492
15492:  ./maps
 Address  Kbytes     RSS    Anon  Locked Pgsz Mode   Mapped File
00010000       8       8       -       -   8K r-x--  maps
00020000       8       8       8       -   8K rwx--  maps
00022000    3960    3960    3960       -   8K rwx--    [ heap ]
00400000    8192    8192    8192       -   4M rwx--    [ heap ]
00C00000    4096       -       -       -    - rwx--    [ heap ]
01000000    4096    4096    4096       -   4M rwx--    [ heap ]
03000000    1024    1024       -       -   8K rw-s-  dev:0,2 ino:4628487
04000000     512     512     512       -   8K rw---  dev:0,2 ino:4628487
04080000     512     512       -       -    - rw---  dev:0,2 ino:4628487
05000000     512     512     512       -   8K rw--R  dev:0,2 ino:4628487
05080000     512     512       -       -    - rw--R  dev:0,2 ino:4628487
06000000    1024    1024    1024       -   8K rw---    [ anon ]
07000000     512     512     512       -   8K rw--R    [ anon ]
08000000    8192    8192       -    8192    - rwxs-    [ dism shmid=0x5 ]
09000000    4096    4096       -       -   8K rwxs-    [ dism shmid=0x4 ]
0A000000    4096       -       -       -    - rwxs-    [ dism shmid=0x2 ]
0B000000    8192    8192       -    8192   4M rwxsR    [ ism shmid=0x3 ]
FF280000     136     136       -       -   8K r-x--  libc.so.1
FF2A2000     120     120       -       -    - r-x--  libc.so.1
FF2C0000     128     128       -       -   8K r-x--  libc.so.1
FF2E0000     200     200       -       -    - r-x--  libc.so.1
FF312000      48      48       -       -   8K r-x--  libc.so.1
FF31E000      48      40       -       -    - r-x--  libc.so.1
FF33A000      32      32      32       -   8K rwx--  libc.so.1
FF3A0000       8       8       -       -   8K r-x--  libdl.so.1
FF3B0000       8       8       8       -   8K rwx--    [ anon ]
FF3C0000     152     152       -       -   8K r-x--  ld.so.1
FF3F6000       8       8       8       -   8K rwx--  ld.so.1
FFBFA000      24      24      24       -   8K rwx--    [ stack ]
     -------- ------- ------- ------- -------
total Kb   50456   42256   18888   16384

例 4 スワップ予約の表示

-S オプションを使用すると、プロセスのスワップ予約の内容を表示できます。予約されたスワップ空間の量がプロセス内のマッピングごとに表示されます。共有マッピングのスワップ予約はシステム全体で 1 度しか行われないため、ゼロとして報告されます。

example$ pmap -S 15492
15492:  ./maps
 Address  Kbytes    Swap Mode   Mapped File
00010000       8       - r-x--  maps
00020000       8       8 rwx--  maps
00022000   20344   20344 rwx--    [ heap ]
03000000    1024       - rw-s-  dev:0,2 ino:4628487
04000000    1024    1024 rw---  dev:0,2 ino:4628487
05000000    1024     512 rw--R  dev:0,2 ino:4628487
06000000    1024    1024 rw---    [ anon ]
07000000     512     512 rw--R    [ anon ]
08000000    8192       - rwxs-    [ dism shmid=0x5]
09000000    8192       - rwxs-    [ dism shmid=0x4]
0A000000    8192       - rwxs-    [ dism shmid=0x2]
0B000000    8192       - rwxsR    [ ism shmid=0x3]
FF280000     680       - r-x--  libc.so.1
FF33A000      32      32 rwx--  libc.so.1
FF3A0000       8       - r-x--  libdl.so.1
FF3B0000       8       8 rwx--    [ anon ]
FF3C0000     152       - r-x--  ld.so.1
FF3F6000       8       8 rwx--  ld.so.1
FFBFA000      24      24 rwx--    [ stack ]
-------- ------- -------
total Kb   50456   23496

スワップ予約情報を使用すると、各追加プロセスによって使用される仮想スワップの量を見積もることができます。各プロセスは、大域仮想スワッププールから仮想スワップを消費します。大域スワップ予約は、swap(1M) コマンドの「avail」フィールドによって報告されます。

例 5 マルチスレッドプロセスでのスタックのラベル付け

example$ pmap 121969
121969: ./stacks
00010000       8K r-x--  /tmp/stacks
00020000       8K rwx--  /tmp/stacks
FE8FA000       8K rwx-R    [ stack tid=11 ]
FE9FA000       8K rwx-R    [ stack tid=10 ]
FEAFA000       8K rwx-R    [ stack tid=9 ]
FEBFA000       8K rwx-R    [ stack tid=8 ]
FECFA000       8K rwx-R    [ stack tid=7 ]
FEDFA000       8K rwx-R    [ stack tid=6 ]
FEEFA000       8K rwx-R    [ stack tid=5 ]
FEFFA000       8K rwx-R    [ stack tid=4 ]
FF0FA000       8K rwx-R    [ stack tid=3 ]
FF1FA000       8K rwx-R    [ stack tid=2 ]
FF200000      64K rw---    [ altstack tid=8 ]
FF220000      64K rw---    [ altstack tid=4 ]
FF240000     112K rw---    [ anon ]
FF260000      16K rw---    [ anon ]
FF280000     672K r-x--  /usr/lib/libc.so.1
FF338000      24K rwx--  /usr/lib/libc.so.1
FF33E000       8K rwx--  /usr/lib/libc.so.1
FF35A000       8K rwxs-    [ anon ]
FF360000     104K r-x--  /usr/lib/libthread.so.1
FF38A000       8K rwx--  /usr/lib/libthread.so.1
FF38C000       8K rwx--  /usr/lib/libthread.so.1
FF3A0000       8K r-x--  /usr/lib/libdl.so.1
FF3B0000       8K rwx--    [ anon ]
FF3C0000     152K r-x--  /usr/lib/ld.so.1
FF3F6000       8K rwx--  /usr/lib/ld.so.1
FFBFA000      24K rwx--    [ stack ]
 total      1384

例 6 lgroup メモリーの割り当ての表示

次の例では、lgroup メモリーの割り当てをマッピングごとに表示します。

example$ pmap -L `pgrep nscd`
100095: /usr/sbin/nscd
00010000       8K r-x--   2 /usr/sbin/nscd
00012000      48K r-x--   1 /usr/sbin/nscd
0002E000       8K rwx--   2 /usr/sbin/nscd
00030000      16K rwx--   2   [ heap ]
00034000       8K rwx--   1   [ heap ]
         .
         .
         .
FD80A000      24K rwx--   2   [ anon ]
FD820000       8K r-x--   2 /lib/libmd5.so.1
FD840000      16K r-x--   1 /lib/libmp.so.2
FD860000       8K r-x--   2 /usr/lib/straddr.so.2
FD872000       8K rwx--   1 /usr/lib/straddr.so.2
FD97A000       8K rw--R   1   [ stack tid=24 ]
FD990000       8K r-x--   2 /lib/nss_nis.so.1
FD992000      16K r-x--   1 /lib/nss_nis.so.1
FD9A6000       8K rwx--   1 /lib/nss_nis.so.1
FD9C0000       8K rwx--   2   [ anon ]
FD9D0000       8K r-x--   2 /lib/nss_files.so.1
FD9D2000      16K r-x--   1 /lib/nss_files.so.1
FD9E6000       8K rwx--   2 /lib/nss_files.so.1
FDAFA000       8K rw--R   2   [ stack tid=23 ]
FDBFA000       8K rw--R   1   [ stack tid=22 ]
FDCFA000       8K rw--R   1   [ stack tid=21 ]
FDDFA000       8K rw--R   1   [ stack tid=20 ]
    .
    .
    .
FEFFA000       8K rw--R   1   [ stack tid=2 ]
FF000000       8K rwx--   2   [ anon ]
FF004000      16K rwx--   1   [ anon ]
FF00A000      16K rwx--   1   [ anon ]
    .
    .
    .
FF3EE000       8K rwx--   2 /lib/ld.so.1
FFBFE000       8K rw---   2   [ stack ]
 total      2968K

終了ステータス

次の終了ステータスが返されます。

0

正常終了。

0 以外

エラーが発生しました。

ファイル

/proc/*

プロセスファイル

/usr/proc/lib/*

proc ツールサポートファイル

属性

属性についての詳細は、マニュアルページの attributes(5) を参照してください。

属性タイプ
属性値
使用条件
system/core-os
インタフェースの安定性
下記を参照。

コマンドの構文は「確実」です。-L オプションおよび出力形式は「不確実」です。

関連項目

ldd(1), lgrpinfo(1), madv.so.1(1), mdb(1), plgrp(1), pmadvise(1), proc(1), ps(1), coreadm(1M), prstat(1M), swap(1M), mmap(2), memcntl(2), meminfo(2), shmop(2), dlopen(3C), proc(4), attributes(5)