IBM Support

[Db2] ulimit(core) が unlimited にもかかわらず、Db2 の生成する core が切り捨てられる

Question & Answer


Question

最大 core ファイルサイズを unlimited に設定したにもかかわらず、Db2 インスタンスの異常終了時に出力される core が途中で切られてしまいます。

Cause

Db2 V9.5 および V9.7 FP1 までを AIX 64-bit システムで起動した場合、ulimit で core が unlimited に設定されていると、Db2 が core のサイズの制限 (RLIMIT_CORE) を 8 GB に設定します。
そのため 8 GB を超える core が出力される場合、サイズによる制限が発生します。

AIX のメカニズムは、RLIMIT_CORE まで書き出して超える部分の情報を切り捨てるのではありません。
RLIMIT_CORE に収まらない場合、共有メモリから大きい順にセグメントを取り除いて、残る部分が RLIMIT_CORE に収まるサイズになったら書き出します。

(例) 7 GB の共有メモリセグメントと 2 GB の共有メモリセグメントからなる 9 GB の core を出力する場合
RLIMIT_CORE が 8 GB になっているため、7 GB のセグメントが取り除かれて 9 - 7 = 2 GB の core が出力されます。

Answer

ulimit を RAM のサイズなどの適切な大きさの値に設定するか、CORELIMIT を十分に大きな値に設定します。
CORELIMIT の設定方法は下記の通りです。
  1. DB2FODC レジストリー変数で設定します。この設定は永続設定です。有効にするためにはインスタンスの再起動が必要です。
    コマンドの例:
    db2set DB2FODC=DUMPCORE=ON CORELIMIT=size DUMPDIR=/tmp/
  2. db2pdcfg コマンドで設定します。この設定は現在稼動中のインスタンスに有効です。インスタンスを再起動する必要はありません。インスタンスを再起動すると設定は無効になります。
    コマンドの例:
    db2pdcfg -fodc DUMPCORE=ON CORELIMIT=size DUMPDIR=/tmp/
※注: CORELIMIT に設定するサイズはバイト単位です。

運用上の考慮点
Solaris は coreadm コマンドで core の出力が制限されています。
root で以下のコマンドを実行して core の出力を可能にさせてください。
  1. per-process setid core dumps (プロセス単位 setid コアダンプ) が disabled になっている場合は coreadm -e proc-setid コマンドを実行してください。
    # coreadm
     グローバルコアのファイルパターン: /tmp/core.%f.%p.%c.%t
         グローバルコアファイルの内容: default
          init コアのファイルパターン: core
              init コアファイルの内容: default
                 グローバルコアダンプ: enabled
               プロセス単位コアダンプ: enabled
          グローバル setid コアダンプ: disabled
        プロセス単位 setid コアダンプ: [disabled]
       グローバルコアダンプのロギング: disabled
    
    # coreadm -e proc-setid
    
    # coreadm
     グローバルコアのファイルパターン: /tmp/core.%f.%p.%c.%t
         グローバルコアファイルの内容: default
          init コアのファイルパターン: core
              init コアファイルの内容: default
                 グローバルコアダンプ: enabled
               プロセス単位コアダンプ: enabled
          グローバル setid コアダンプ: disabled
        プロセス単位 setid コアダンプ: [enabled]
       グローバルコアダンプのロギング: disabled
    
    

関連情報
汎用レジストリー変数
db2pdcfg - 問題判別動作用の Db2 データベースの構成コマンド
 
お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと Db2 テクニカル・サポートへお問い合わせください。
Db2 テクニカル・サポート

[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m0z0000001he2AAA","label":"DB2 Tools-\u003Edb2pdcfg"}],"ARM Case Number":"","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"}],"Version":"All Versions"}]

Document Information

Modified date:
25 August 2023

UID

swg21591811