Solaris のバージョン 2.5 以上では /proc というディレクトリがあります。 これは UNIX 上で現在動いているプロセスのための擬似ディレクトリです。
この直下にある数字から成るディレクトリは PID (Process IDentifier) に対応するもので、カーネルにあるプロセス制御テーブルをマップしたものです。 従って、このサイズはディスク上のものではありません。
また、これらの擬似ファイルはカーネルの管理下にありますので、 削除できません。
このページでは solaris 7 (2.7) で実行した結果を載せていますが、 solaris 8 (2.8) では表示の一部が異なります。それについては solaris 8 のメモリマップで説明します。
> df -k ファイルシステム kbytes 使用済み 使用可能 capacity マウント先 /proc 0 0 0 0% /proc /dev/dsk/c0t0d0s0 1018191 340818 616282 36% / /dev/dsk/c0t0d0s6 1489367 1093092 336701 77% /usr fd 0 0 0 0% /dev/fd /dev/dsk/c0t0d0s7 12908388 11363593 1415712 89% /home00 /dev/dsk/c0t1d0s0 8706617 7216591 1402960 84% /home01 /dev/dsk/c0t1d0s1 8706617 4790964 3828587 56% /home02 /dev/dsk/c0t2d0s0 8706617 6367069 2252482 74% /home03 /dev/dsk/c0t2d0s1 8706617 6669800 1949751 78% /home04 /dev/dsk/c0t3d0s0 10084696 5262030 4721820 53% /home05 /dev/dsk/c0t3d0s1 7328537 5768223 1487029 80% /home06 /dev/dsk/c2t0d0s0 8706617 6396393 2223158 75% /home07 /dev/dsk/c2t0d0s1 8706617 4149434 4470117 49% /home08 /dev/dsk/c2t1d0s0 8706617 8034430 585121 94% /home09 /dev/dsk/c2t1d0s1 8706617 5827737 2791814 68% /home10 /dev/dsk/c2t2d0s0 8706617 7571723 1047828 88% /home11 /dev/dsk/c2t2d0s1 8706617 7838737 780814 91% /home12 /dev/dsk/c2t3d0s0 8258597 5043916 3132096 62% /home13 /dev/dsk/c2t3d0s1 8258597 7956704 219308 98% /home14 /dev/dsk/c2t3d0s2 8258597 4483346 3692666 55% /home15 /dev/dsk/c2t3d0s3 8258597 393807 7782205 5% /home16 swap 4636640 1336 4635304 1% /tmp
プロセスが終了すると、/proc 配下からもなくなります。
PID を指定してこれらの情報を操作するツールがいくつかあります。
それらは、/usr/proc/bin/* (solaris 2.5 以上)にあります。
solaris 8 (2.8) からは /bin の下にもあります。
なお、 /proc の構造体は /usr/include/procfs.h に定義されています。(solaris)
![]() |
![]() |
まず、見たいプロセスの PID を求めます。
ora_s000_ora816 のメモリマップを見ることにします。
> ps -efl | grep ora816 F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD 8 S ora816 491 1 0 51 20 ? 1161 ? 4月 05 ? 0:00 /home12/ora816/app/oracle/product/8 8 S ora816 11509 11507 0 41 20 ? 342 ? 10:49:38 pts/16 0:00 -tcsh 8 S ora816 8673 1 0 40 20 ? 19446 ? 15:10:14 ? 0:00 ora_pmon_ora816 8 S ora816 8675 1 0 41 20 ? 19448 ? 15:10:14 ? 0:00 ora_dbw0_ora816 8 S ora816 8677 1 0 40 20 ? 19385 ? 15:10:14 ? 0:01 ora_lgwr_ora816 8 S ora816 8679 1 0 40 20 ? 19387 ? 15:10:14 ? 0:05 ora_ckpt_ora816 8 S ora816 8681 1 0 41 20 ? 19378 ? 15:10:15 ? 0:01 ora_smon_ora816 8 S ora816 8683 1 0 41 20 ? 19375 ? 15:10:15 ? 0:00 ora_reco_ora816 8 S ora816 8685 1 0 41 20 ? 19477 ? 15:10:15 ? 0:17 ora_snp0_ora816 8 S ora816 8687 1 0 40 20 ? 18925 ? 15:10:15 ? 0:00 ora_s000_ora816 8 S ora816 8689 1 0 40 20 ? 19425 ? 15:10:15 ? 0:00 ora_d000_ora816 8 S ora816 8691 1 0 40 20 ? 19385 ? 15:10:15 ? 0:00 ora_arc0_ora816
ps の SZ は仮想メモリー内のプロセスの合計サイズ (ページ単位 1page=8K) です。
従ってプロセス 8687 の仮想サイズは 18925 * 8 = 151400 (KB) です。
以下のコマンドで、そのプロセスのメモリマップを得られます。
> pmap -x PID
では、PID 8687 の ora_s000_ora816 のメモリマップを見てみましょう。
> pmap -x 8687 8687: ora_s000_ora816 Address Kbytes Resident Shared Private Permissions Mapped File 00010000 24696 14896 8744 6152 read/exec oracle テキスト 0183C000 232 232 176 56 read/write/exec oracle データ 01876000 104 96 - 96 read/write/exec [ heap ] 80000000 119384 119384 - 119384 read/write/exec/shared [shmid=0x5] SGA FEB00000 664 648 640 8 read/exec libc.so.1 FEBB4000 32 32 - 32 read/write/exec libc.so.1 FEBBC000 8 8 - 8 read/write/exec [ anon ] FEC00000 4872 3048 1024 2024 read/exec libjox8.so FF0D0000 176 176 - 176 read/write/exec libjox8.so FF0FC000 16 - - - read/write/exec [ anon ] FF140000 16 16 8 8 read/exec libc_psr.so.1 FF150000 16 16 8 8 read/exec libmp.so.2 FF162000 8 8 - 8 read/write/exec libmp.so.2 FF170000 88 88 80 8 read/exec libm.so.1 FF194000 8 8 - 8 read/write/exec libm.so.1 FF1A0000 8 8 - 8 read/exec libkstat.so.1 FF1B0000 8 8 - 8 read/write/exec libkstat.so.1 FF1C0000 8 8 - 8 read/write/exec [ anon ] FF1D0000 32 32 24 8 read/exec librt.so.1 FF1E6000 8 8 - 8 read/write/exec librt.so.1 FF1F0000 32 32 24 8 read/exec libaio.so.1 FF206000 8 8 - 8 read/write/exec libaio.so.1 FF210000 8 8 - 8 read/exec libsched.so.1 FF220000 8 8 - 8 read/write/exec libsched.so.1 FF230000 8 8 8 - read/write/exec/shared [ anon ] FF240000 24 24 16 8 read/exec libgen.so.1 FF254000 16 16 - 16 read/write/exec libgen.so.1 FF260000 32 32 24 8 read/exec libsocket.so.1 FF276000 16 16 - 16 read/write/exec libsocket.so.1 FF280000 520 472 408 64 read/exec libnsl.so.1 FF310000 40 40 - 40 read/write/exec libnsl.so.1 FF31A000 32 24 - 24 read/write/exec [ anon ] FF330000 32 16 - 16 read/exec libdsbtsh8.so FF346000 8 8 - 8 read/write/exec libdsbtsh8.so FF348000 8 - - - read/write/exec [ anon ] FF350000 8 8 - 8 read/write/exec [ anon ] FF360000 8 8 - 8 read/exec libwtc8.so FF370000 8 8 - 8 read/write/exec libwtc8.so FF380000 8 8 - 8 read/exec libskgxp8.so FF390000 8 8 - 8 read/write/exec libskgxp8.so FF3A0000 8 8 - 8 read/exec libdl.so.1 FF3B0000 136 136 128 8 read/exec ld.so.1 FF3E0000 16 16 - 16 read/write/exec ld.so.1 FFBEA000 24 24 - 24 read/write/exec [ stack ] スタック -------- ------ ------ ------ ------ total Kb 151400 139656 11312 128344
上記の出力項目の説明は以下のとおりです。単位は KB です。
項目名 | 説 明 | ps 表示 | |
---|---|---|---|
Address | 仮想メモリ上のアドレス (*) | ||
Kbytes | 仮想メモリ上のサイズ | SZ | |
Resident | 常駐部分のサイズ | RSS | |
Shared | 共有部分のサイズ | ||
Private | 個別部分のサイズ | ||
Permissions | メモリ属性 | ||
read/exec | テキストセグメント(命令部分) | ||
read/write/exec | データセグメントまたはスタックセグメント(データ領域) | ||
read/write/exec/shared | 共用メモリ | ||
Mapped File | マップしているファイル名 |
(*) 仮想メモリ上のアドレスとは、実行形式を全メモリに展開した場合のアドレスです。 UNIX のメモリ管理は、仮想記憶という概念を利用していますので、 仮想という表現しますが、これらは実際には存在しません。
プロセスのメモリは、テキスト・セグメント、データ・セグメント、
スタック・セグメントに分類されます。
ここでセグメントとは、
連続したメモリ領域のことで、ページ単位で管理されます。
本来 SGA は Private でなく Shared であるべきです。 solaris 8 からは Shared となっています。
従って、ora_s000_ora816 が個別に使っていて現在メモリ上に常駐しているのは、 128344-119384=8960(KB) です。
また、Mapped File の [heap] や [anon](anonymous) は、
malloc() で個別に確保される領域です。
PGA(Program Global Area) とよばれる領域は、ここに確保されます。
これらのデータは、時々刻々と変化します。
ps のオプション -y
を指定しないで得られるプロセスのメモリサイズの単位はページです。
solaris の場合、1ページ 8KB ですので、
8倍すると pmap で得られた total の値と等しくなります。
また top コマンドや ps コマンドの RSS (Resident memory size) には、 SGA やテキストセグメントの共有部分のサイズが含まれていますので、 oracle の全プロセスの使用メモリサイズはこれらの総計ではないことを 銘記しておいてください。
![]() |
![]() |
oracle database writer (dbw) のメモリマップは特殊です。
それは dbw がマルチスレッドプロセスだからです。
スレッドの数を表示する ps コマンドのオプションは -L です。
> ps -efL|grep ora_dbw0_ora817 UID PID PPID LWP NLWP C STIME TTY LTIME CMD ora817 28084 1 1 23 0 15:27:54 ? 0:00 ora_dbw0_ora817 ora817 28084 1 2 23 0 15:28:00 ? 0:00 ora_dbw0_ora817 ora817 28084 1 3 23 0 15:28:00 ? 0:00 ora_dbw0_ora817 ora817 28084 1 4 23 0 15:28:00 ? 0:00 ora_dbw0_ora817 ora817 28084 1 5 23 0 15:28:00 ? 0:00 ora_dbw0_ora817 ora817 28084 1 6 23 0 15:28:00 ? 0:00 ora_dbw0_ora817 ora817 28084 1 7 23 0 15:28:00 ? 0:00 ora_dbw0_ora817 ora817 28084 1 8 23 0 15:28:00 ? 0:00 ora_dbw0_ora817 ora817 28084 1 9 23 0 15:28:00 ? 0:00 ora_dbw0_ora817 ora817 28084 1 10 23 0 15:28:00 ? 0:00 ora_dbw0_ora817 ora817 28084 1 11 23 0 15:28:00 ? 0:00 ora_dbw0_ora817 ora817 28084 1 12 23 0 17:57:12 ? 0:00 ora_dbw0_ora817 ora817 28084 1 13 23 0 17:57:12 ? 0:00 ora_dbw0_ora817 ora817 28084 1 14 23 0 17:57:12 ? 0:00 ora_dbw0_ora817 ora817 28084 1 15 23 0 17:57:12 ? 0:00 ora_dbw0_ora817 ora817 28084 1 16 23 0 17:57:12 ? 0:00 ora_dbw0_ora817 ora817 28084 1 17 23 0 17:57:12 ? 0:00 ora_dbw0_ora817 ora817 28084 1 18 23 0 17:57:12 ? 0:00 ora_dbw0_ora817 ora817 28084 1 19 23 0 17:57:12 ? 0:00 ora_dbw0_ora817 ora817 28084 1 20 23 0 17:57:12 ? 0:00 ora_dbw0_ora817 ora817 28084 1 21 23 0 17:57:12 ? 0:00 ora_dbw0_ora817 ora817 28084 1 22 23 0 17:57:12 ? 0:00 ora_dbw0_ora817 ora817 28084 1 23 23 0 18:29:34 ? 0:00 ora_dbw0_ora817
上記より dbw には 23 のスレッドがあります。 PID が同じ 28084 であることから、同じプロセスであることが解ります。 ではこのプロセスの pmap を見てみましょう。
> pmap -x 28084 28084: ora_dbw0_ora817 Address Kbytes Resident Shared Private Permissions Mapped File 00010000 26592 7784 5216 2568 read/exec oracle 01A16000 264 192 136 56 read/write/exec oracle 01A58000 1760 48 - 48 read/write/exec [ heap ] 80000000 70848 70848 - 70848 read/write/exec/shared [shmid=0x2ee5] FE782000 8 - - - read/write/exec [ anon ] FE794000 8 - - - read/write/exec [ anon ] FE7A6000 8 - - - read/write/exec [ anon ] FE7B8000 8 - - - read/write/exec [ anon ] FE7CA000 8 - - - read/write/exec [ anon ] FE7DC000 8 - - - read/write/exec [ anon ] FE7EE000 8 - - - read/write/exec [ anon ] FE800000 8 - - - read/write/exec [ anon ] FE812000 8 - - - read/write/exec [ anon ] FE824000 8 - - - read/write/exec [ anon ] FE836000 8 - - - read/write/exec [ anon ] FE844000 8 - - - read/write/exec [ anon ] FE848000 8 - - - read/write/exec [ anon ] FE856000 8 - - - read/write/exec [ anon ] FE85A000 8 - - - read/write/exec [ anon ] FE868000 8 - - - read/write/exec [ anon ] FE86C000 8 - - - read/write/exec [ anon ] FE87A000 8 - - - read/write/exec [ anon ] FE87E000 8 - - - read/write/exec [ anon ] FE88C000 8 - - - read/write/exec [ anon ] FE890000 8 - - - read/write/exec [ anon ] FE89E000 8 - - - read/write/exec [ anon ] FE902000 8 - - - read/write/exec [ anon ] FE910000 8 - - - read/write/exec [ anon ] FE914000 8 - - - read/write/exec [ anon ] FE922000 8 - - - read/write/exec [ anon ] FE926000 8 - - - read/write/exec [ anon ] FE934000 8 - - - read/write/exec [ anon ] FE938000 8 - - - read/write/exec [ anon ] FE946000 8 - - - read/write/exec [ anon ] FE94A000 8 - - - read/write/exec [ anon ] FE958000 8 - - - read/write/exec [ anon ] FE95C000 8 - - - read/write/exec [ anon ] FE96A000 8 - - - read/write/exec [ anon ] FE96E000 8 - - - read/write/exec [ anon ] FE97C000 8 - - - read/write/exec [ anon ] FE980000 8 - - - read/write/exec [ anon ] FE98E000 8 - - - read/write/exec [ anon ] FE992000 8 - - - read/write/exec [ anon ] FE9A0000 8 - - - read/write/exec [ anon ] FE9A4000 8 - - - read/write/exec [ anon ] FE9B2000 8 - - - read/write/exec [ anon ] FE9B6000 8 - - - read/write/exec [ anon ] FE9C4000 8 - - - read/write/exec [ anon ] FE9C8000 8 - - - read/write/exec [ anon ] FE9D6000 8 - - - read/write/exec [ anon ] FE9DA000 8 - - - read/write/exec [ anon ] FE9E8000 8 - - - read/write/exec [ anon ] FE9EC000 8 - - - read/write/exec [ anon ] FE9FA000 8 - - - read/write/exec [ anon ] FE9FE000 8 - - - read/write/exec [ anon ] FEA0C000 8 - - - read/write/exec [ anon ] FEA10000 8 - - - read/write/exec [ anon ] FEA1E000 8 8 - 8 read/write/exec [ anon ] FEA70000 8 - - - read/write/exec [ anon ] FEA80000 16 16 16 - read/exec libmp.so.2 FEA92000 8 8 8 - read/write/exec libmp.so.2 FEAA0000 120 32 32 - read/exec libelf.so.1 FEACC000 8 8 8 - read/write/exec libelf.so.1 FEAE0000 16 16 16 - read/exec libkvm.so.1 FEAF2000 8 8 8 - read/write/exec libkvm.so.1 FEB00000 664 648 640 8 read/exec libc.so.1 FEBB4000 40 40 8 32 read/write/exec libc.so.1 FEBD0000 88 88 88 - read/exec libm.so.1 FEBF4000 8 8 8 - read/write/exec libm.so.1 FEC00000 4056 720 720 - read/exec libjox8.so FF004000 160 - - - read/write/exec libjox8.so FF02C000 8 - - - read/write/exec [ anon ] FF040000 8 8 8 - read/exec libkstat.so.1 FF050000 8 8 8 - read/write/exec libkstat.so.1 FF060000 32 32 32 - read/exec librt.so.1 FF076000 8 8 8 - read/write/exec librt.so.1 FF080000 520 392 376 16 read/exec libnsl.so.1 FF110000 40 40 8 32 read/write/exec libnsl.so.1 FF11A000 32 - - - read/write/exec [ anon ] FF130000 16 16 16 - read/exec libc_psr.so.1 FF140000 32 32 32 - read/exec libaio.so.1 FF156000 8 8 8 - read/write/exec libaio.so.1 FF160000 8 8 8 - read/exec libsched.so.1 FF170000 8 8 8 - read/write/exec libsched.so.1 FF180000 912 160 160 - read/exec liblsm.so FF272000 48 - - - read/write/exec liblsm.so FF27E000 504 - - - read/write/exec [ anon ] FF310000 8 - - - read/write/exec [ anon ] FF320000 8 8 8 - read/write/exec/shared [ anon ] FF330000 24 24 24 - read/exec libgen.so.1 FF344000 16 16 8 8 read/write/exec libgen.so.1 FF350000 32 32 32 - read/exec libsocket.so.1 FF366000 16 16 8 8 read/write/exec libsocket.so.1 FF370000 8 8 8 - read/exec libskgxp8.so FF380000 8 8 8 - read/write/exec libskgxp8.so FF390000 8 8 8 - read/exec libdl.so.1 FF3A0000 8 - - - read/write/exec [ anon ] FF3B0000 144 144 144 - read/exec ld.so.1 FF3E2000 16 16 8 8 read/write/exec ld.so.1 FFBEA000 24 16 - 16 read/write/exec [ stack ] -------- ------ ------ ------ ------ total Kb 107608 81488 7832 73656
dbw は定期的に SGA の db_block_buffers
の更新情報をデータベースに書き出すプロセスです。
書き込みのシステムコールとして aiowrite() を使います。
これは kaio (kernel asynchronous I/O) と呼ばれています。
kaio は raw デバイスの場合はカーネル内部で非同期入出力をしますが、 それ以外の場合はユーザスレッドを利用します。 ufs(Unix File System) の場合も、ユーザスレッドを利用します。 上記の例も ufs なのでユーザスレッドとなっています。
上記の [anon] は、各スレッドが使うスタックです。 全部で 54 ありますが、上記のマップでは常駐していませんので、 データベースへの更新がないようです。
solaris での aio の最大スレッド数は 258 です。 ですから長い間 oracle を使い続けると、 ほとんどの dbw のスレッド数は最大の 258 になり、 各スレッドに3ページくらいのスタックが必要ですので、 メモリ増分に気をつける必要があります。
![]() |
![]() |
solaris 8 では SGA は Shared に含まれるように変更されました。 これが最も理にかなった表示であると思われます。
oracle の全プロセスが占めるメモリの概算は以下のとおりです。
oracle プロセスメモリ = Private * (oracle プロセス数) + Shared (+ PGA) |
---|
> pmap -x 21701 21701: ora_cjq0_ora92032 Address Kbytes Resident Shared Private Permissions Mapped File 00010000 49136 25304 25304 - read/exec oracle text segment 0301A000 488 360 312 48 read/write/exec oracle data segment 03094000 288 160 120 40 read/write/exec [ heap ] 20000000 593920 593920 593920 - read/write/exec/shared [ ism shmid=0x141e5 ] SGA FEB00000 8 8 8 - read/write [ anon ] FEB10000 8 8 8 - read/write [ anon ] FEB50000 8 8 - 8 read/write [ anon ] FEB58000 48 48 8 40 read/write [ anon ] FEB68000 32 32 - 32 read/write [ anon ] FEBB0000 16 16 16 - read/exec libmp.so.2 FEBC4000 8 8 8 - read/write/exec libmp.so.2 FEBD0000 88 72 72 - read/exec libm.so.1 FEBF4000 8 8 8 - read/write/exec libm.so.1 FEC00000 4416 1216 1216 - read/exec libjox9.so FF05E000 192 168 168 - read/write/exec libjox9.so FF0A0000 8 8 8 - read/exec libkstat.so.1 FF0B2000 8 8 8 - read/write/exec libkstat.so.1 FF0C0000 24 24 24 - read/exec librt.so.1 FF0D6000 8 8 8 - read/write/exec librt.so.1 FF0E0000 32 24 24 - read/exec libaio.so.1 FF0F8000 8 8 8 - read/write/exec libaio.so.1 FF100000 688 632 632 - read/exec libc.so.1 FF1BC000 32 32 16 16 read/write/exec libc.so.1 FF1D0000 8 8 8 - read/write/exec [ anon ] FF1E0000 8 8 8 - read/exec libsched.so.1 FF1F2000 8 8 8 - read/write/exec libsched.so.1 FF200000 568 392 392 - read/exec libnsl.so.1 FF29E000 40 40 40 - read/write/exec libnsl.so.1 FF2A8000 24 16 16 - read/write/exec libnsl.so.1 FF2C0000 16 16 16 - read/exec libc_psr.so.1 FF2D0000 8 8 8 - read/write/exec/shared [ anon ] FF2E0000 8 8 - 8 read/write/exec [ anon ] FF2F0000 24 24 24 - read/exec libgen.so.1 FF306000 8 8 8 - read/write/exec libgen.so.1 FF310000 40 40 40 - read/exec libsocket.so.1 FF32A000 8 8 8 - read/write/exec libsocket.so.1 FF330000 8 8 8 - read/exec libskgxn9.so FF340000 8 8 8 - read/write/exec libskgxn9.so FF350000 8 8 8 - read/exec libskgxp9.so FF360000 8 8 8 - read/write/exec libskgxp9.so FF370000 8 8 8 - read/exec libodmd9.so FF380000 8 8 8 - read/write/exec libodmd9.so FF390000 8 8 8 - read/exec libdl.so.1 FF3A0000 8 8 - 8 read/write/exec [ anon ] FF3B0000 160 160 160 - read/exec ld.so.1 FF3E8000 8 8 - 8 read/write/exec ld.so.1 FFBE8000 32 32 16 16 read/write/exec [ stack ] stack segment -------- ------ ------ ------ ------ total Kb 650504 622928 622704 224
![]() |
![]() |
solaris 9 では、さらに以下のような表記になりました。 oracle 9 からは SGA_MAX_SIZE を指定できますが、 このサイズ分はじめから実メモリを確保するのではなく、 不足した場合に動的に OS により実メモリにマップされます。
下記の例は、SGA_MAX_SIZE が 11.6G ですが、 現在実メモリにマップされているのは 3633152KB(3.46G) です (RSS(Resident physical memory)) 。
また3カラム目の Anon は、そのプロセスが個別に使っている、 データセグメント、スタックセグメントを表しています。
> pmap -x 11233 11233: ora_smon_dbtp0601 Address Kbytes RSS Anon Locked Mode Mapped File 0000000100000000 50472 28912 - - r-x-- oracle text segment 0000000103248000 712 536 112 - rwx-- oracle data segment 00000001032FA000 464 336 336 - rwx-- [ heap ] 0000000380000000 4096 4096 - - rwxs- [ dism shmid=0x6a6 ] 0000040000000000 2457600 - - - rwxs- [ dism shmid=0x7020 ] 00000400C0000000 3670016 - - - rwxs- [ dism shmid=0x35ed ] 00000401C0000000 3665920 3633152 - - rwxs- [ dism shmid=0x196 ] SGA FFFFFFFF7CBF0000 200 200 200 - rw--R [ anon ] FFFFFFFF7CC2E000 8 8 8 - rw--R [ anon ] FFFFFFFF7CD70000 512 512 512 - rw--R [ anon ] FFFFFFFF7CE00000 8 8 8 - rw--R [ anon ] FFFFFFFF7CE10000 8 8 8 - rw--R [ anon ] FFFFFFFF7CE50000 192 192 192 - rw--R [ anon ] FFFFFFFF7CF00000 8 8 8 - rwx-- [ anon ] FFFFFFFF7D000000 8 8 - - r-x-- libmd5.so.1 FFFFFFFF7D102000 8 8 8 - rwx-- libmd5.so.1 FFFFFFFF7D200000 16 16 - - r-x-- libmp.so.2 FFFFFFFF7D304000 8 8 8 - rwx-- libmp.so.2 FFFFFFFF7D400000 216 160 - - r-x-- libm.so.1 FFFFFFFF7D534000 16 16 16 - rwx-- libm.so.1 FFFFFFFF7D600000 8 8 8 - rwx-- [ anon ] FFFFFFFF7D700000 8 8 - - r-x-- libkstat.so.1 FFFFFFFF7D802000 8 8 8 - rwx-- libkstat.so.1 FFFFFFFF7D900000 32 32 - - r-x-- librt.so.1 FFFFFFFF7DA08000 8 8 8 - rwx-- librt.so.1 FFFFFFFF7DB00000 32 32 - - r-x-- libaio.so.1 FFFFFFFF7DC08000 8 8 8 - rwx-- libaio.so.1 FFFFFFFF7DC0A000 8 - - - rwx-- libaio.so.1 FFFFFFFF7DD00000 720 720 - - r-x-- libc.so.1 FFFFFFFF7DEB4000 56 56 56 - rwx-- libc.so.1 FFFFFFFF7DEC2000 8 8 8 - rwx-- libc.so.1 FFFFFFFF7DF00000 8 8 8 - rwx-- [ anon ] FFFFFFFF7E000000 32 24 - - r-x-- libgen.so.1 FFFFFFFF7E108000 8 8 8 - rwx-- libgen.so.1 FFFFFFFF7E200000 48 48 - - r-x-- libsocket.so.1 FFFFFFFF7E30C000 16 16 16 - rwx-- libsocket.so.1 FFFFFFFF7E400000 5328 2728 - - r-x-- libjox9.so FFFFFFFF7EA32000 384 288 288 - rwx-- libjox9.so FFFFFFFF7EA92000 8 - - - rwx-- libjox9.so FFFFFFFF7EB00000 8 8 - - r-x-- libc_psr.so.1 FFFFFFFF7EC00000 664 288 - - r-x-- libnsl.so.1 FFFFFFFF7EDA6000 56 56 56 - rwx-- libnsl.so.1 FFFFFFFF7EDB4000 40 32 32 - rwx-- libnsl.so.1 FFFFFFFF7EE00000 8 8 8 - rwx-- [ anon ] FFFFFFFF7EF00000 32 24 - - r-x-- libskgxn9.so FFFFFFFF7F006000 8 8 8 - rwx-- libskgxn9.so FFFFFFFF7F100000 8 8 - - r-x-- libskgxp9.so FFFFFFFF7F200000 8 8 8 - rwx-- libskgxp9.so FFFFFFFF7F300000 8 8 - - r-x-- libodmd9.so FFFFFFFF7F400000 8 8 8 - rwx-- libodmd9.so FFFFFFFF7F500000 8 8 - - r-x-- libdl.so.1 FFFFFFFF7F600000 152 152 - - r-x-- ld.so.1 FFFFFFFF7F724000 16 16 16 - rwx-- ld.so.1 FFFFFFFF7F728000 8 8 8 - rwx-- ld.so.1 FFFFFFFF7FFE4000 112 112 112 - rw--- [ stack ] stack segment ---------------- ---------- ---------- ---------- ---------- total Kb 9858360 3672944 2088 -
以下がこの時の ipcs の結果です。 ipcs のID とpmap の Mapped File の shmid とが一致します(表記が10進と16進)。 shmid=0x196 は ID=406 でこれにのみ KEY が割り当てられていることからも、 実メモリが割り当てられていることが解ります。
T ID KEY MODE OWNER GROUP CREATOR CGROUP NATTCH SEGSZ CPID LPID ATIME DTIME CTIME Shared Memory: m 0 0xde021c3e --rw------- root root root root 1 3840 173 13307 23:06:58 23:06:58 7:52:04 m 1 0xde021c3d --rw------- root root root root 1 768 173 11072 7:52:04 22:21:55 7:52:04 m 1702 0 --rw-r----- oracle dba oracle dba 88 4194304 11188 18199 17:36:43 17:36:55 22:23:40 m 103 0xcace --rw-rw-rw- root other root other 0 2 6773 10941 15:03:17 15:03:17 20:45:03 m 28704 0 --rw-r----- oracle dba oracle dba 88 2516582400 11188 18199 17:36:43 17:36:55 22:23:40 m 13805 0 --rw-r----- oracle dba oracle dba 88 3758096384 11188 18199 17:36:43 17:36:55 22:23:40 m 406 0x60b99a54 --rw-r----- oracle dba oracle dba 88 3753902080 11188 18199 17:36:43 17:36:55 22:23:40
![]() |
![]() |