15.7.11 JP1/IM - Managerの起動・停止のタイムアウト時間の検討(UNIXの場合)
JP1/IM - Managerは起動・停止の際に,タイムアウト時間を設定して処理を実行します。起動・停止の処理に時間が掛かり,デフォルトのタイムアウト時間を超えた場合は,起動・停止処理の完了を待たずにタイムアウトします。
このような場合は,起動・停止の際のデフォルトタイムアウト時間の設定を変更することで対処できます。
デフォルトのタイムアウト時間は,次のとおりです。
-
起動(jco_startコマンド):300秒
-
停止(jco_stopコマンド):360秒※
- 注※
-
JP1/IM - Managerを停止したあとにIMデータベースおよびインテリジェント統合管理データベースを停止するため,それぞれの次のタイムアウト値を合計した値となります。
・JP1/IM - Manager:240秒
・インテリジェント統合管理データベース:60秒
・IMデータベース:60秒
- 〈この項の構成〉
(1) 設定するタイムアウト値の目安
IMデータベースのサイズの種類によって,設定するタイムアウト値の目安は異なります。IMデータベースの規模ごとの起動・停止のタイムアウト値の目安およびjco_startコマンド,jco_stopコマンドのデフォルト値を次の表に示します。
サイズの種類 |
起動タイムアウト値(秒) |
停止タイムアウト(秒)※ |
---|---|---|
小規模(S) |
120 |
120 |
中規模(M) |
180 |
150 |
大規模(L) |
300(デフォルト) |
240(デフォルト) |
- 重要
-
-
IMデータベースおよびインテリジェント統合管理データベースの起動はバックグラウンドで実行されるため,起動時はIMデータベースおよびインテリジェント統合管理データベースの起動時間を考慮しません。
-
IMデータベースの停止はJP1/IM - Managertが停止したあとに行われるため,停止時のタイムアウト値を設定する際は,IMデータベースのタイムアウト時間の60秒を考慮して設定してください。
-
マシンの性能や状態によって起動・停止時間は異なります。このため,目安値で設定した場合でもタイムアウトが発生することがあります。ご使用の運用環境に合わせてタイムアウト値を適切に設定してください。
JP1/IM - Managerの起動・停止のログ情報から,起動停止の処理時間を算出する方法については「15.7.11(2) ログ情報からの起動停止時間の計測方法」を参照してください。
-
クラスタ運用時には,クラスタソフトのタイムアウト値も見直してください。
-
IMデータベースの構成については,「15.1.3 IMデータベースの容量の見積もり」を参照してください。
(2) ログ情報からの起動停止時間の計測方法
運用環境の統合トレースログで,JP1/IM - Managerの起動時,停止時のメッセージIDの時刻を確認し,開始時間と完了時間の差を算出します。起動・停止時に掛かる処理時間を確認できます。
(a) 起動時間の算出手順
起動時間の算出手順を次に示します。
-
統合トレースログで,次のメッセージIDの時刻を確認する。
- 起動開始時刻
-
KAVB3705-I:evflow 開始中... pid = プロセスID
- 起動完了時刻
-
KAVB3603-I:JP1_CONSの全プロセスが起動しました
-
起動完了時刻から起動開始時刻を引いてJP1/IM - Managerの起動時間を算出する。
起動開始時刻と起動完了時刻の例
0031 2020/07/01 14:11:46.750 JCO_SPMD 00004642 -------- KAVB3705-I evflow 開始中... pid = プロセスID 0046 2020/07/01 14:12:31.794 JCO_SPMD 00004642 -------- KAVB3603-I JP1_CONSの全プロセスが起動しました
上記の算出結果
14:12:31.794 - 14:11:46.750 = 約45秒
-
算出した時間を元に,起動タイムアウト時間を設定する。
算出した値を元に,システムへの負荷を考慮して余裕を持った値を設定してください。
(b) 停止時間の算出手順
停止時間の算出手順を次に示します。
-
統合トレースログで,次のメッセージIDの時刻を確認する。
- 停止開始時刻
-
KAVB3577-I:jco_spmd_stop : JP1_CONSの全プロセスに対し停止要求を送信します
- 停止完了時刻
-
KAVB3743-I:JP1_CONSは終了します
-
停止完了時刻から停止開始時刻を引いてJP1/IM - Managerの停止時間を算出する。
停止開始時刻と停止完了時刻の例
0041 2020/07/01 15:20:01.061 JCO_SPMD 0000485E -------- KAVB3577-I jco_spmd_stop : JP1_CONSの全プロセスに対し停止要求を送信します 0059 2020/07/01 15:20:34.715 JCO_SPMD 0000485E -------- KAVB3743-I JP1_CONSは終了します
上記の算出結果
15:20:34.715 - 15:20:01.061 = 約34秒
-
算出した時間を元に,停止タイムアウト時間を設定する。
算出した値を元に,システムへの負荷を考慮して余裕を持った値を設定してください。
(3) JP1/IM - Managerの起動・停止のタイムアウト値の設定
JP1/IM - Managerの起動・停止のタイムアウト値の設定について説明します。
タイムアウト値を変更したあとは,通常の起動・停止と同様の方法で起動・停止できます。起動・停止については,マニュアル「JP1/Integrated Management 3 - Manager 運用ガイド」の「3. JP1/IM - Managerの起動と終了」を参照してください。
(a) jco_startの設定
jco_startコマンドの設定手順を次に示します。
-
jco_start.modelを任意の名称でコピーする。
cd /etc/opt/jp1cons cp -p jco_start.model 任意の名称
-
コピーしたスクリプトをテキストエディターで開き,編集する。
MAX_RETRY※1の値を変更すると,タイムアウト値を変更できます。設定するタイムアウト時間の目安値は「15.7.11(1) 設定するタイムアウト値の目安」を参照してください。
PATH=/sbin:/bin:/usr/bin:/opt/jp1base/bin:/opt/jp1cons/bin:/opt/jp1imm/bin/imdb LANG=C MAX_RETRY=24 # 5 * 24 = 120 [seconds]
下線部分を編集します。
- 注※1
-
MAX_RETRYの値はリトライ回数です。リトライ間隔は5秒です。MAX_RETRYの値は次の式で算出します。
[タイムアウト秒数〕 ÷ 5 = [MAX_RETRYに設定する値]
(例)タイムアウト秒数が180秒の場合
180 ÷ 5 = 36
MAX_RETRY = 36
(b) jco_stopの設定
jco_stopコマンドの設定手順を次に示します。
-
jco_stop.modelを任意の名称でコピーする。
cd /etc/opt/jp1cons cp -p jco_stop.model 任意の名称
-
コピーしたスクリプトをテキストエディターで開き,編集する。
MAX_RETRY※1の値を変更すると,タイムアウト値を変更できます。設定するタイムアウト時間の目安値は「15.7.11(1) 設定するタイムアウト値の目安」を参照してください。
PATH=/sbin:/bin:/usr/bin:/opt/jp1base/bin:/opt/jp1cons/bin:/opt/jp1imm/bin/imdb LANG=C MAX_RETRY=24 # 5 * 24 = 120 [seconds]
下線部分を編集します。
- 注※1
-
MAX_RETRYの値はリトライ回数です。リトライ間隔は5秒です。MAX_RETRYの値は次の式で算出します。
[タイムアウト秒数〕 ÷ 5 = [MAX_RETRYに設定する値]
(例)タイムアウト秒数が240秒の場合
240 ÷ 5 = 48
MAX_RETRY = 48
(4) 自動起動および自動停止のタイムアウト値の設定
JP1/IM - Managerを,自動起動サービス(systemd)で自動起動および自動停止する運用の場合は,次の手順でタイムアウト値を設定します。
-
jp1_cons.serviceをテキストエディターで開く。
-
次のファイルを編集する。
/usr/lib/systemd/system/jp1_cons.service
-
[Service]セクションに,起動のタイムアウト値を設定する。
TimeoutStartSec=xを停止のタイムアウト値として,TimeoutStopSec=yを設定します。
-
TimeoutStartSec,TimeoutStopSecを設定していない場合は,systemdのデフォルトタイムアウト時間の90秒が設定されます。
-
設定するタイムアウト時間の目安値は「15.7.11(1) 設定するタイムアウト値の目安」を参照してください。
-
JP1/IM - Managerの起動・停止のログ情報から,起動・停止の処理時間を算出する方法については「15.7.11(2) ログ情報からの起動停止時間の計測方法」を参照してください。
-
systemdのタイムアウト値を変更した場合は,jco_startコマンドおよびjco_stopコマンドのタイムアウト値も,systemdのタイムアウト値と合わせて見直しが必要です。
-
-
次のコマンドを実行し,自動起動サービス(systemd)の変更を適用する。
#systemctl daemon-reload