Question & Answer
Question
パラレルジョブが稀にハングするときがあります。再現条件が明確でないので、事前にデバッグオプションを設定することもできません。どのようにすれば実際の業務に影響がなく、ハング時の情報を取得することができますか?
Answer
事前準備
事前に、下記の環境変数を、アドミニストレータークライアントを使用して、プロジェクトレベルで有効になるように設定してください。設定直後に有効になり、サービスの再起動もジョブの再コンパイルも不要です。
- APT_PM_SHOW_PIDS: ステージごとのプロセスIDをジョブログに記録します。
- APT_DUMP_SCORE: ステージとノードの関係をジョブログに記録します。
いずれも、ジョブの初期化時に追加情報をジョブログに記録するものです。ジョブのアルゴリズムを変更したり、ジョブ本体の実行時間に影響するものではありません。
ハング発生時
(1) ps -ef | grep osh を実行し osh のプロセス一覧を取得
例
$ps -ef | grep osh
dsadm 62165 62148 0 12:27 ? 00:00:00 ...
dsadm 62166 62165 2 12:27 ? 00:00:00 ... dsadm 62167 62166 27 12:27 ? 00:00:05 ... dsadm 62185 1 5 12:27 ? 00:00:01 ... dsadm 62186 1 6 12:27 ? 00:00:01 ... dsadm 62187 62186 4 12:27 ? 00:00:00 ... dsadm 62188 62186 35 12:27 ? 00:00:07 ... dsadm 62189 62185 33 12:27 ? 00:00:07 ... dsadm 62196 62189 0 12:27 ? 00:00:00 ... dsadm 62197 62189 0 12:27 ? 00:00:00 ... dsadm 62198 62188 0 12:27 ? 00:00:00 ... dsadm 62199 62188 0 12:27 ? 00:00:00 ... ...
|
(2) すべての osh プロセスに対して pstack PID を実行し、スタックトレースを取得 (Linux では pstack, AIX では procstack を実行)
例
$ pstack 62199
#0 0x00007f654e5ac6fd in read () from /lib64/libpthread.so.0 #1 0x00007f654f912b20 in APT_UNIX_read(int, void*, unsigned int) () from /opt/IBM/InformationServer/Server/PXEngine/lib/liborchcorex86_64.so #2 0x00007f65433ed0d7 in APT_TSort_Merger::processSorterRequest() () from /opt/IBM/InformationServer/Server/PXEngine/lib/orchsort.so #3 0x00007f65433f0c88 in APT_TSort_Merger::runMerger() () from /opt/IBM/InformationServer/Server/PXEngine/lib/orchsort.so #4 0x00007f65433f13e1 in APT_TSort_Merger::forkMerger() () from /opt/IBM/InformationServer/Server/PXEngine/lib/orchsort.so #5 0x00007f65433f1df6 in APT_TSort_Merger::APT_TSort_Merger(bool, APT_TSort_KeyComparator const&, APT_TSort_ScratchDisks*, unsigned int, bool) () from /opt/IBM/InformationServer/Server/PXEngine/lib/orchsort.so #6 0x00007f6543400e80 in APT_TSortOperator::doInitialProcessing() () from /opt/IBM/InformationServer/Server/PXEngine/lib/orchsort.so #7 0x00007f654ee62cb3 in APT_CombinableOperatorRep::setup() () from /opt/IBM/InformationServer/Server/PXEngine/lib/liborchx86_64.so ...
|
Related Information
[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSZJPZ","label":"IBM InfoSphere Information Server"},"ARM Category":[{"code":"a8m50000000L0t8AAC","label":"DataStage"}],"ARM Case Number":"","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF016","label":"Linux"}],"Version":"11.3.1;11.5.0;11.7.0;11.7.1","Line of Business":{"code":"LOB10","label":"Data and AI"}}]
Was this topic helpful?
Document Information
Modified date:
11 June 2020
UID
ibm16225348