Upload
asteria-user-group
View
246
Download
7
Embed Size (px)
Citation preview
今さら聞けないASTERIA WARP運用の基礎
インフォテリア株式会社 ASTERIA事業本部
製品技術部
岸本 秀和
知っておくべきASTERIA WARPの一二三
アジェンダ2
©1998-2017 Infoteria Corporation
一. ASTERIA WARP起動・停止のトラブルシューティング
二. メモリ不足のトラブルシューティング
三. 障害が発生してしまったら
一. ASTERIA WARP起動・停止の
トラブルシューティング
3
©1998-2017 Infoteria Corporation
ASTERIA WARPの起動方法
• Windowsのサービスからの起動
• Windowsのスタートメニューから起動
• コマンドによる起動flowsvc: フローサービスの起動fsstop: フローサービスの停止
4
©1998-2017 Infoteria Corporation
フローサービスの起動確認
フローサービスの起動状況を確認するコマンド fsctrl status
5
©1998-2017 Infoteria Corporation
フローサービス起動時
フローサービス停止時
起動・停止の具体的なトラブル例 6
©1998-2017 Infoteria Corporation
フローサービスが停止しない
OS再起動後、フローサービス起動しようとすると、フローサービスが正常に動作しない
具体的なトラブル例1
• フローサービスが停止しないStopPending(停止中)のままフローサービスが停止できない。
7
©1998-2017 Infoteria Corporation
フローが実行中である可能性あり。
フローサービスはフロー実行が完了するまで停止できない。
• 処理時間が長いフロー
• 接続先(RDBなど)からレスポンスが返されない
• 想定外の処理が行われフローが終了しない(無限ループなど)
• 障害が発生したケース(メモリ不足等)
8
©1998-2017 Infoteria Corporation
フローが実行中まま停止しないケース
でもどうしてもフローサービスを停止したい…
対応策
• 管理コンソール
[状態] – [フロー] –[リクエスト一覧]
リクエストの削除
9
©1998-2017 Infoteria Corporation
• Flow-ctrllist request リクエスト一覧を表示kill request リクエストIDを使用してリクエストを削除
1. リクエストの削除(フローの実行停止)を行う
2. フローサービスの強制終了
10
©1998-2017 Infoteria Corporation
・fsctrl kill [ServiceName]指定サービスを強制終了させます。
・fsctrl shutdown killallフローサービス停止時に、停止要求を出さずに次々とプロセスを強制終了していきます。
・fsctrl shutdown タイムアウト時間(秒)フローサービス停止時に、停止要求を出してから指定時間経っても終了しないサービスを強制終了します。時間内に終了できる場合は通常終了と同等です。それぞれのサービス毎にタイムアウト時間が適用されます。例) fsctrl shutdown 15
問題を未然に防止するには
• 管理コンソール
[状態] – [フロー] –[リクエスト一覧]
11
©1998-2017 Infoteria Corporation
• Flow-ctrlList request リクエスト一覧を表示Show request リクエストIDを使用してフロー情報を取得
1. 実行中のフローを確認する
• 管理コンソール
[設定] – [トリガー] より[有効無効]
12
©1998-2017 Infoteria Corporation
• Flow-ctrl disable url URLトリガ無効disable ftp FTPトリガ無効disable schedule スケジュール無効 など
2. トリガー・スケジュールをあらかじめ停止する。
まとめ
フロー実行中にフローサービスの停止は
行わない。
13
©1998-2017 Infoteria Corporation
フローサービスが停止できない現象を予防するには…
具体的なトラブル例2
• OS再起動後、フローサービス起動しようとすると、フローサービスが正常に動作しない
14
©1998-2017 Infoteria Corporation
どのような現象が発生するのか?
現象
15
©1998-2017 Infoteria Corporation
フローサービスを停止せずにOSをシャットダウンした可能性。
フローサービスの強制終了もしくはフローサービスを停止をせずにOSのシャットダウンしたことにより[DATA_DIR]/flow/home/asu/TriggerMap.xconfファイルが破損している可能性。
・FlowServiceプロセスが起動しない。・Asteria.logにはフローサービスの停止ログが正常に出力されない。・Flowservice.logには以下のメッセージが出力
[TriggerManager, main] FLEG_E_2132:実行設定登録ファイルの読み込みに失敗しました
対応策
復旧方法
• TriggerMap.xconfの復旧-バックアップからの復旧-履歴ファイル (TriggerMap.conf.1~5)からの復旧
バージョン4.9.0から改善TriggerMap.xconfの読み込みが失敗しても、自動的にスペアファイル(TriggerMap.xconf.0)を読み込む
16
©1998-2017 Infoteria Corporation
問題を未然に防止するには
1. OSの再起動を行う際、フローサービスをあらかじめ停止しておく。
2. フローサービスの起動状況を確認する。
$ fsctrl status
17
©1998-2017 Infoteria Corporation
まとめ
OS再起動後、フローサービス起動しようとすると、フローサービスが正常に動作しない現象を予防するには…
18
©1998-2017 Infoteria Corporation
OS再起動前にフローサービスを停止してからOSの再起動を行う。
二. メモリ不足に関する
トラブルシューティング
19
©1998-2017 Infoteria Corporation
メモリ不足(Out Of Memory)とは
フローサービスで設定した最大メモリサイズを超えてメモリを使用しようとするとメモリ不足となる。
主にFlowServiceプロセスで発生し、FlowService.logには以下のメッセージが出力される。
java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: GC overhead limit exceeded
FlowServiceにてメモリ不足が発生した状態になるとプロセスが不安定になり、プロセスの異常終了、場合によってはフローサービス全体が停止してしまう現象が発生する。
20
©1998-2017 Infoteria Corporation
メモリ不足(Out Of Memory)が発生したら
• エラー後の動作がおかしい、エラーが出力されるなどの問題が発生したら、フローサービスを停止し、OSの再起動を行う。
• フローサービスが停止しない場合、リクエストの削除やフローサービスの強制終了を行い、OSの再起動を行う。
21
©1998-2017 Infoteria Corporation
再発防止のためには、まずメモリ使用状況を確認する必要がある。
FlowServiceのメモリ使用確認方法1 22
©1998-2017 Infoteria Corporation
• モニターツール(GUI版)
メモリ使用量をグラフでリアルタイムで表示される。
• モニターツール(コンソール版)$ fsmon –console
メモリ使用量をテキストベースでリアルタイムで表示される。
ログとしてファイルに出力する機能もあります。
FlowServiceのメモリ使用確認方法2 23
©1998-2017 Infoteria Corporation
• FSMCのグラフメモリ使用量の履歴を確認できる。
ではどのような対応策が必要なのか。
メモリ不足の対応策1 24
©1998-2017 Infoteria Corporation
最大メモリサイズ(最大ヒープ領域)を変更する
FSMC[設定]-[サービス]-[起動]の[最大メモリサイズ]
※32bit版 ASTERIA WARPでは最大メモリサイズの制限あり。
メモリ不足の対応策2 25
©1998-2017 Infoteria Corporation
フローの内容を見直す例: 100万件のCSVのレコードデータをDB(Oracle)に格納する。
1. 一度に読み込むデータ量を抑えるコンポーネントを使用。FileGet⇒ RecordGet
2. ループ処理を実施する。3. 結果を返す必要がなければEndコンポーネントを使用。
26
©1998-2017 Infoteria Corporation
最大メモリサイズ: 1024MB読み込むデータ:100万件 x 10フィールドRecordGetの取得行数: 100000
Out Of Memory 380MB
メモリ不足の対応策3 27
©1998-2017 Infoteria Corporation
類似したコンポーネントに変更
FTP Server から1.2GBのファイル取得。FTPGet -> FTPDownload(4.8登場)
Out Of Memory 25MB
28
©1998-2017 Infoteria Corporation
1GBのファイルをzipに圧縮して保存。 Zip -> Zipfile(4.4登場)
Out Of Memory 50MB
メモリ不足の対応策4 29
©1998-2017 Infoteria Corporation
多重処理を避ける
1. スケジュールによる多重実行を避ける。
2. 排他制御処理を実行(Mutexコンポーネント)
午前9時に5つのフローを同時に実行している
まとめ 30
©1998-2017 Infoteria Corporation
メモリ不足の発生を予防するには…
現在のメモリ使用量をグラフ・モニターツールで把握する。
最大メモリサイズ・フローの実行内容の見直しを行う。
三. 障害が発生してしまったら
31
©1998-2017 Infoteria Corporation
障害の内容を把握する 32
©1998-2017 Infoteria Corporation
• 障害はいつ、どのようなタイミングで発生したか調査し出力されたログの内容を把握する。
• ログは以下の環境で確認できる。ファイル:[DATA_DIR]/log (バージョン1610以降)
[INSTALL_DIR]/flow/log (バージョン4.9.1以前)管理コンソール: [状態] – [ログ] よりログビューア: フローデザイナー同梱のツール
• ASTERIA Developer Network(ADN)にて障害内容を検索するASTERIA Developer Network( https://support.asteria.com)
ログ一覧 33
©1998-2017 Infoteria Corporation
ASTERIA Developer Network(ADN) 34
©1998-2017 Infoteria Corporation
https://support.asteria.com
ドキュメント・FAQなどの情報を公開
原因が特定できない場合 35
©1998-2017 Infoteria Corporation
• 弊社もしくは購入先にお問合せください。
• いつどのような現象が発生したかご連絡ください。
• 調査に必要な情報を送付お願いします。(ASTERIAのバージョン、ご使用のOSとバージョン、ログ、フローなど)
詳細はADN(https://support.asteria.com) 「技術情報」 - 「使い方のヒント」にある「フローサービスのトラブルシューティング」をご覧ください。