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 が出力されます。
そのため 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 の設定方法は下記の通りです。
運用上の考慮点
Solaris は coreadm コマンドで core の出力が制限されています。
root で以下のコマンドを実行して core の出力を可能にさせてください。
関連情報
汎用レジストリー変数
db2pdcfg - 問題判別動作用の Db2 データベースの構成コマンド
CORELIMIT の設定方法は下記の通りです。
- DB2FODC レジストリー変数で設定します。この設定は永続設定です。有効にするためにはインスタンスの再起動が必要です。
コマンドの例:db2set DB2FODC=DUMPCORE=ON CORELIMIT=size DUMPDIR=/tmp/
- db2pdcfg コマンドで設定します。この設定は現在稼動中のインスタンスに有効です。インスタンスを再起動する必要はありません。インスタンスを再起動すると設定は無効になります。
コマンドの例:db2pdcfg -fodc DUMPCORE=ON CORELIMIT=size DUMPDIR=/tmp/
※注: CORELIMIT に設定するサイズはバイト単位です。
運用上の考慮点
Solaris は coreadm コマンドで core の出力が制限されています。
root で以下のコマンドを実行して core の出力を可能にさせてください。
- 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 データベースの構成コマンド
[{"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"}]
Was this topic helpful?
Document Information
Modified date:
25 August 2023
UID
swg21591811