0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[AIX]svmon -Pでのプロセス固有のメモリ使用量の見方

Posted at

[AIX]svmon -Pでのプロセス固有のメモリ使用量の見方

注:

この文書での方法は1つの考え方でしかなく異論反論があると思いますので、そういった意見をお持ちの方はぜひとも別の文書で考え方を公開ください。

コマンド実行例:

# svmon -PO unit=auto,segment=on,timestamp=on,pidlist=on,shmid=on,pgsz=on,filename=on,commandline=on,mapping=on,filterprop=notempty,summary=extended,format=nolimit | perl -pe 's/64-bit Mthrd  16MB/64-bit Mthrd  16MB\n/'

※summary=extendedはマニュアルには記載がありませんが、下記APARに記載があります。
ただし、改行コードを入れ忘れているようなので、Perlで改行を追加しています。
IV72178: SVMON -O STRIPS PROCESS SUMMARY LINE APPLIES TO AIX 7100-04
https://www.ibm.com/support/pages/apar/IV72178

始めに:

svmon -Pを見る上で重要になる知識は、プロセスメモリーモデルと各セグメントの意味になります。
共有メモリとは何か、mallocヒープとは何か、といった知識は必須になります。

参考:

32 ビット AIX 仮想メモリー・モデル
https://www.ibm.com/docs/ja/sdk-java-technology/8?topic=usage-32-bit-aix-virtual-memory-model
大きなプログラムのサポート
https://www.ibm.com/docs/ja/aix/7.3.0?topic=concepts-large-program-support
malloc、free、realloc、calloc、mallopt、mallinfo、mallinfo_heap、alloca、valloc、または posix_memalign サブルーチン
https://www.ibm.com/docs/ja/aix/7.3.0?topic=m-malloc-free-realloc-calloc-mallopt-mallinfo-mallinfo-heap-alloca-valloc-posix-memalign-subroutine
shmget サブルーチン
https://www.ibm.com/docs/ja/aix/7.3.0?topic=s-shmget-subroutine
shmat サブルーチン
https://www.ibm.com/docs/ja/aix/7.3.0?topic=s-shmat-subroutine
ipcs コマンド
https://www.ibm.com/docs/ja/aix/7.3.0?topic=i-ipcs-command

大まかなセグメント番号の説明と共有メモリに対する考え方:

基本的に、デフォルトメモリーモデルの32ビットプロセスの場合はセグメント2番、Large addressモデルの32ビットプロセスの場合はセグメント3番からの連続、64ビットプロセスの場合はセグメント11番からの連続がmallocヒープになり、プロセス固有のメモリ使用量になります。(一般的に、プログラムテキストはmallocに比べて小さいものなので考慮する必要は無いという考えです。)

共有メモリについては、複数プロセスで共有している場合はプロセス固有としては考えないと思いますが、単一プロセスでの使用や、IPC_PRIVATEの場合はプロセス固有として考えることになると思います。
共有ライブラリも一般的に小さいメモリになるため、考慮は不要なシステムが多いと思います。

パターン別の見方:

・デフォルトメモリーモデルの32ビットプロセス

-------------------------------------------------------------------------------
     Pid Command          Inuse      Pin     Pgsp  Virtual 64-bit Mthrd  16MB
15073574 ssh            112.42M    74.5M       0K  111.39M      N     N     N

     PageSize                Inuse        Pin       Pgsp    Virtual
     s    4 KB               6.98M        16K         0K      5.95M
     m   64 KB             105.44M      74.5M         0K    105.44M
     L   16 MB                  0K         0K         0K         0K
     S   16 GB                  0K         0K         0K         0K

    Vsid      Esid Type Description              PSize  Inuse   Pin Pgsp Virtual
   10002         0 work kernel segment               m  54.0M 50.4M   0K   54.0M
                   System segment
    b000         d work shared library text          m  51.4M 24.1M   0K   51.4M
                   Shared library text segment
  898ad3         2 work process private             sm  5.39M   16K   0K   5.39M
                   pid(s)=15073574
  85882b         1 clnt code,/dev/hd2:942            s  1.03M    0K    -       -
                        /usr/bin/ssh
                   pid(s)=19267878, 15073574, 13893888, 12911086
  8086a1         f work shared library data         sm   572K    0K   0K    572K
                   pid(s)=15073574

-------------------------------------------------------------------------------

見るべき項目はセグメント2番の下記行になります。

  898ad3         2 work process private             sm  5.39M   16K   0K   5.39M
                   pid(s)=15073574

・Large addressモデルの32ビットプロセス

-------------------------------------------------------------------------------
     Pid Command          Inuse      Pin     Pgsp  Virtual 64-bit Mthrd  16MB
12321216 rmcd           120.57M    88.6M       0K  118.93M      N     Y     N

     PageSize                Inuse        Pin       Pgsp    Virtual
     s    4 KB               15.1M      14.1M         0K      13.5M
     m   64 KB             105.44M      74.5M         0K    105.44M
     L   16 MB                  0K         0K         0K         0K
     S   16 GB                  0K         0K         0K         0K

    Vsid      Esid Type Description              PSize  Inuse   Pin Pgsp Virtual
   10002         0 work kernel segment               m  54.0M 50.4M   0K   54.0M
                   System segment
    b000         d work shared library text          m  51.4M 24.1M   0K   51.4M
                   Shared library text segment
  8885f1         f work shared library data         sm  9.04M 9.04M   0K   9.04M
                   pid(s)=12321216
  8405c8         3 work working storage             sm  3.96M 3.96M   0K   3.96M
                   pid(s)=12321216
  8805f0         1 clnt code,/dev/hd2:16812          s  1.61M  864K    -       -
                        /usr/sbin/rsct/bin/rmcd
                   pid(s)=12321216
  880430         2 work process private             sm   280K  216K   0K    280K
                   pid(s)=12321216
  808601         - work System Segment               s   224K   40K   0K    224K
                   System segment
  880610         - clnt /dev/hd2:34623               s    24K    0K    -       -
                        /usr/lib/nls/msg/Ja_JP/ct_rmc.cat
                   pid(s)=12321216

-------------------------------------------------------------------------------

見るべき項目はセグメント3番の下記行になります。

  8405c8         3 work working storage             sm  3.96M 3.96M   0K   3.96M
                   pid(s)=12321216

・単一プロセスで共有メモリを使用している32ビットプロセス

-------------------------------------------------------------------------------
     Pid Command          Inuse      Pin     Pgsp  Virtual 64-bit Mthrd  16MB
16449916 telnetd        106.30M    74.5M       0K  106.21M      N     N     N

     PageSize                Inuse        Pin       Pgsp    Virtual
     s    4 KB                880K        16K         0K       792K
     m   64 KB             105.44M      74.5M         0K    105.44M
     L   16 MB                  0K         0K         0K         0K
     S   16 GB                  0K         0K         0K         0K

    Vsid      Esid Type Description              PSize  Inuse   Pin Pgsp Virtual
   10002         0 work kernel segment               m  54.0M 50.4M   0K   54.0M
                   System segment
    b000         d work shared library text          m  51.4M 24.1M   0K   51.4M
                   Shared library text segment
  8f8a9f         f work shared library data         sm   384K    0K   0K    384K
                   pid(s)=16449916
  8e8b9d         3 work working storage             sm   300K    0K   0K    300K
                   pid(s)=16449916
  8086c1         2 work process private             sm   104K   16K   0K    104K
                   pid(s)=16449916
  8a83b5         1 clnt code,/dev/hd2:3040           s    88K    0K    -       -
                        /usr/sbin/telnetd
                   pid(s)=16449916
  8203c4         5 work shared memory segment       sm     4K    0K   0K      4K
                        shmid:1024
                   pid(s)=16449916

-------------------------------------------------------------------------------
# ipcs -amS1
IPC status from /dev/mem as of Tue Aug 19 09:42:59 JST 2025
T        ID     KEY        MODE       OWNER    GROUP  CREATOR   CGROUP NATTCH     SEGSZ  CPID  LPID   ATIME    DTIME    CTIME    SID
Shared Memory:
m      1024 0x0d000be0 --rw-rw----     root   system     root   system      1      1440 7274760 11731440 13:51:55 13:52:37 13:57:23   0x8203c4

見るべき項目はセグメント3番と5番の下記行になります。

  8e8b9d         3 work working storage             sm   300K    0K   0K    300K
                   pid(s)=16449916
  8203c4         5 work shared memory segment       sm     4K    0K   0K      4K
                        shmid:1024
                   pid(s)=16449916

5番の共有メモリについてはpid(s)、NATTCHともに1つなっていて、単一プロセスで共有メモリを使用していることが分かります。
この状態の共有メモリは単一プロセスで使用しているメモリとみなすことができます。
(ただし、プログラムの挙動によっては、複数プロセスでの使用に変わる可能性もあります。)

・IPC_PRIVATEの共有メモリを使用している32ビットプロセス

-------------------------------------------------------------------------------
     Pid Command          Inuse      Pin     Pgsp  Virtual 64-bit Mthrd  16MB
10355020 java           135.56M    74.6M       0K  135.56M      N     Y     N

     PageSize                Inuse        Pin       Pgsp    Virtual
     s    4 KB                384K        84K         0K       384K
     m   64 KB             135.19M      74.6M         0K    135.19M
     L   16 MB                  0K         0K         0K         0K
     S   16 GB                  0K         0K         0K         0K

    Vsid      Esid Type Description              PSize  Inuse   Pin Pgsp Virtual
   10002         0 work kernel segment               m  54.0M 50.4M   0K   54.0M
                   System segment
    b000         d work shared library text          m  51.4M 24.1M   0K   51.4M
                   Shared library text segment
  880490         3 work working storage              m  20.6M    0K   0K   20.6M
                   pid(s)=10355020
  820604         9 work shared memory segment        m  6.00M    0K   0K   6.00M
                        shmid:1025
                   pid(s)=10355020
  848369         f work working storage              m  2.75M    0K   0K   2.75M
                   pid(s)=10355020
  8c03f8         - work System Segment               s   384K   84K   0K    384K
                   System segment
  8f035e         2 work process private              m   320K   64K   0K    320K
                   pid(s)=10355020
  848489         1 work code                         m   128K    0K   0K    128K
                   pid(s)=10355020

-------------------------------------------------------------------------------
# ipcs -amS1
IPC status from /dev/mem as of Tue Aug 19 09:42:59 JST 2025
T        ID     KEY        MODE       OWNER    GROUP  CREATOR   CGROUP NATTCH     SEGSZ  CPID  LPID   ATIME    DTIME    CTIME    SID
Shared Memory:
m      1025 0xffffffff D-rw-------     root   system     root   system      1 1073741824 10355020 10355020 13:57:31 no-entry 13:57:31   0x820604 0x818603 0x810602 0x888611

見るべき項目はセグメント3番と9番の下記行になります。

  880490         3 work working storage              m  20.6M    0K   0K   20.6M
                   pid(s)=10355020
  820604         9 work shared memory segment        m  6.00M    0K   0K   6.00M
                        shmid:1025
                   pid(s)=10355020

9番の共有メモリはKEYが0xffffffff(IPC_PRIVATE)になっていて、プロセス間で共有できないことが分かります。
そのため、9番は共有メモリであってもプロセス固有として考えるべきメモリになります。

・64ビットプロセス

-------------------------------------------------------------------------------
     Pid Command          Inuse      Pin     Pgsp  Virtual 64-bit Mthrd  16MB
 4784610 syslogd          84.5M    44.4M       0K    75.1M      Y     N     N

     PageSize                Inuse        Pin       Pgsp    Virtual
     s    4 KB               13.2M        16K         0K      3.73M
     m   64 KB               71.4M      44.4M         0K      71.4M
     L   16 MB                  0K         0K         0K         0K
     S   16 GB                  0K         0K         0K         0K

    Vsid      Esid Type Description              PSize  Inuse   Pin Pgsp Virtual
    8002         0 work kernel segment               m  46.7M 44.2M   0K   46.7M
                   System segment
  864019  90000000 work shared library text          m  24.4M    0K   0K   24.4M
                   Shared library text segment
  830bcc         - clnt /dev/hd9var:567              s  9.19M    0K    -       -
                        /var/adm/ras/syslog.caa
                   pid(s)=4784610
  86c01b  90020014 work shared library               s  1.76M    0K   0K   1.76M
                   pid(s)=15991074, 6095112, 5439944, 5046706, 4981162, 4784610,
                   pid(s)=4719048, 3604860, 2556166, 2294150
   2800a  9ffffffd work shared library              sm  1.39M   16K   0K   1.39M
                   System segment
  87409d f00000002 work process private              m   320K  192K   0K    320K
                   pid(s)=4784610
  87825e  9001000a work shared library data         sm   252K    0K   0K    252K
                   pid(s)=4784610
  850214        11 work text data BSS heap          sm   164K    0K   0K    164K
                   pid(s)=4784610
  82c1cb         - clnt /dev/hd9var:8196             s    96K    0K    -       -
                        /var/hacmp/adm/cluster.log
                   pid(s)=4784610
  8040e1  9fffffff clnt USLA text,/dev/hd2:4136      s    76K    0K    -       -
                        /usr/ccs/bin/usla64
                   pid(s)=15991074, 6095112, 5439944, 5046706, 4981162, 4784610,
                   pid(s)=4719048, 3604860, 2556166
   3400d  9ffffffe work shared library              sm    76K    0K   0K     76K
                   System segment
  83c24f        10 clnt text data BSS heap,          s    64K    0K    -       -
                        /dev/hd2:2456
                        /usr/sbin/syslogd
                   pid(s)=4784610
  864239  80020014 work USLA heap                   sm    48K    0K   0K     48K
                   pid(s)=4784610
  86821a  ffffffff work application stack           sm    40K    0K   0K     40K
                   pid(s)=4784610
  81c2a7  8fffffff work private load data            s    16K    0K   0K     16K
                   System segment
  83438d         - clnt /dev/hd9var:260              s     4K    0K    -       -
                        /var/log/aso/aso_debug.log
                   pid(s)=4784610
  87c25f         - clnt /dev/hd9var:258              s     4K    0K    -       -
                        /var/log/aso/aso.log
                   pid(s)=4784610
  854375         - clnt /dev/hd9var:259              s     4K    0K    -       -
                        /var/log/aso/aso_process.log
                   pid(s)=4784610

-------------------------------------------------------------------------------

見るべき項目はセグメント11番の下記行になります。

  850214        11 work text data BSS heap          sm   164K    0K   0K    164K
                   pid(s)=4784610

・共有メモリを使用している64ビットプロセス

-------------------------------------------------------------------------------
     Pid Command          Inuse      Pin     Pgsp  Virtual 64-bit Mthrd  16MB

 8782142 postgres       136.96M    53.8M       0K  112.94M      Y     N     N

     PageSize                Inuse        Pin       Pgsp    Virtual
     s    4 KB               27.4M        20K         0K      3.38M
     m   64 KB             109.56M      53.8M         0K    109.56M
     L   16 MB                  0K         0K         0K         0K
     S   16 GB                  0K         0K         0K         0K

    Vsid      Esid Type Description              PSize  Inuse   Pin Pgsp Virtual
   20002         0 work kernel segment               m  58.6M 53.6M   0K   58.6M
                   System segment
  990019  90000000 work shared library text          m  50.6M    0K   0K   50.6M
                   Shared library text segment
  890569         - clnt /dev/hd1:8234                s  16.0M    0K    -       -
                        /home/ios/CM/DB/pg_wal/000000010000000100000095
                   pid(s)=9437502, 8782142
  9b045b        10 clnt text data BSS heap,          s  7.95M    0K    -       -
                        /dev/hd2:66195
                        /usr/ios/db/bin/postgres
                   pid(s)=10027344, 9961784, 9503026, 9437502, 8782142, 7930190,
                   pid(s)=6947130, 5898694
   a000a  9ffffffd work shared library              sm  1.94M   20K   0K   1.94M
                   System segment
  9b001b  90020014 work shared library               s  1.00M    0K   0K   1.00M
                   pid(s)=22413714, 10027344, 9961784, 9503026, 9437502,
                   pid(s)=9044270, 8782142, 8716578, 8192296, 8126804, 7930190,
                   pid(s)=6947130, 6881672, 5898694, 5702110, 4915632, 2294164
  990579 f00000002 work process private              m   320K  192K   0K    320K
                   parent=980578
                   pid(s)=8782142
  9b057b        11 work text data BSS heap          sm   260K    0K   0K    260K
                   parent=9a057a
                   pid(s)=8782142
   d000d  9ffffffe work shared library              sm   100K    0K   0K    100K
                   System segment
  820122  9fffffff clnt USLA text,/dev/hd2:4150      s    76K    0K    -       -
                        /usr/ccs/bin/usla64
                   pid(s)=22413714, 10027344, 9961784, 9503026, 9437502,
                   pid(s)=9044270, 8782142, 8716578, 8192296, 8126804, 7930190,
                   pid(s)=6947130, 6881672, 5898694, 5702110, 4915632
  9f057f  9001000a work shared library data         sm    64K    0K   0K     64K
                   parent=9e057e
                   pid(s)=8782142
  810581  ffffffff work application stack           sm    24K    0K   0K     24K
                   parent=800580
                   pid(s)=8782142
  800500  a0001000 work default shmat/mmap          sm     4K    0K   0K      4K
                        shmid:1049602
                   pid(s)=9961784, 9503026, 9437502, 8782142, 7930190, 5898694

-------------------------------------------------------------------------------
# ipcs -amS1
IPC status from /dev/mem as of Tue Aug 19 10:21:41 JST 2025
T        ID     KEY        MODE       OWNER    GROUP  CREATOR   CGROUP NATTCH     SEGSZ  CPID  LPID   ATIME    DTIME    CTIME    SID
Shared Memory:
m   1049602 0x005cc601 --rw------- vpgadmin      bin vpgadmin      bin      6        56 9503026 23331186 10:50:44 10:20:57 10:50:44   0x800500

見るべき項目はセグメント11番の下記行になります。

  9b057b        11 work text data BSS heap          sm   260K    0K   0K    260K
                   parent=9a057a
                   pid(s)=8782142

セグメントa0001000番の共有メモリは複数のプロセスで共有しているため、プロセス固有のメモリではないと考えられます。

  800500  a0001000 work default shmat/mmap          sm     4K    0K   0K      4K
                        shmid:1049602
                   pid(s)=9961784, 9503026, 9437502, 8782142, 7930190, 5898694

最後に:

基本の考え方を理解した上で、filtertypeやfiltercatで絞り込むことで、見たいデータのみを抽出することをお勧めします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?