p4 heartbeat
これは、ターゲットサーバ(マスターサーバをモニタリングするスタンバーサーなど)を監視するためのコマンドです。管理者はこのコマンドを使用して、フェイルオーバーが必要がどうかを判断することができます。
構文規則
p4 [g-opts] heartbeat [-i interval] [-w wait] [-m missingInterval]
[-r missingWait] [-c count]
p4 [g-opts] heartbeat -t target [-i interval] [-w wait] [-m missingInterval]
[-r missingWait] [-c count]
説明
p4 heartbeatコマンドを使用して、サーバを監視することができます。p4 heartbeatコマンドを実行するサーバと監視対象のサーバは、どちらもバージョン20.1以上になっている必要があります。
通常、スタンバイサーバでハートビートを使用してマスターサーバからの応答を監視する場合などに、このコマンドを使用します。管理者はこのコマンドを使用して、フェイルオーバーが必要がどうかを判断することができます(「p4 failover」を参照)。
ハートビートにより、ターゲットサーバに対して定期的に要求が送信され、そのサーバからの応答がモニターされます。ターゲットサーバの状態が変化した場合に管理者に対してアラートを表示するように、ターゲットサーバをモニターするサーバ(モニタリングサーバ)を設定することができます。
ターゲットサーバの動作 | モニタリングサーバが起動するトリガまたは拡張機能 |
---|---|
サーバから応答が返されない | heartbeat-missing
|
ターゲットサーバからの応答が再開された場合 | heartbeat-resumed
|
サーバから応答が連続して返されず、その回数が設定されている最大数に達した | heartbeat-dead
|
『Helix Coreサーバ管理者ガイド』の「ハートビートでのトリガ」を参照してください。
-
スタンバイサーバでマスターサーバをモニターする場合は、スタンバイサーバ上で、ハートビートスレッドを開始バックグラウンドスレッドとして設定します。これを行うには、startup.N構成可能変数を次のように設定します:
p4 configure standby#startup.4=heartbeat
- このハートビートコマンドは、フェイルオーバーが発生した場合に、スタンバイサーバでマスターサーバをモニターするためのコマンドですが(フェイルオーバーについては、『Helix Coreサーバ管理者ガイド』の「フェイルオーバー」を参照)、フェイルオーバー操作を実行するかどうかの判断は、スクリプトを使用して判断するのではなく、人間が判断を行うことをお勧めします。
- モニタリングサーバは、自分自身を除くすべてのターゲットサーバをモニタリングすることができます。そのため、-t targetまたはP4TARGETの値を使用して指定されたターゲットサーバで、p4 heartbeatコマンドを実行するサーバのP4PORTの値を使用することはできません。
-
ログの動作は、以下のようになります。
- ハートビートコマンドの先頭に「
-t target
」を指定すると、commands.csv
ファイルとall.csv
ファイルにタイムスタンプが記録されます。 - 最初にハートビートが返されなかった場合と、ハートビートが連続して返されなかった回数が設定されている最大回数を超えた場合、その情報が
errors.csv
ファイルに記録されます。 - 返されなかったハートビートをすべて記録するなど、詳細なログを記録する場合は、
-vheartbeat=3
オプションを指定してHelixサーバを起動します。
- ハートビートコマンドの先頭に「
- このコマンドを実行すると、ターゲットサーバとモニタリングサーバ間のトラフィックが増加します。
-
以下に示すいずれかのイベントが発生するまで、ハートビートスレッドは稼働を継続します。
- ハートビートスレッドで、ターゲットサーバが応答していないことが検出された
- ハートビートスレッドが明示的に終了された
- サーバのシャットダウンに伴ってハートビートスレッドが終了した
ハートビートスレッドを起動プロセス(p4 pullの起動プロセスなど)として実行するのか、フォアグラウンドでp4 heartbeatコマンドを実行するのかにかかわらず、上記の動作が実行されます。
Helix Coreの複製の概要については、『Helix Coreサーバ管理者ガイド』の「複製」を参照してください。
オプション
|
モニターするターゲットサーバを指定します。このオプションを指定しなかった場合、P4TARGETの値がコマンド内で使用されます。 |
|
次のハートビート要求を送信する間隔をミリ秒単位で指定します。 このオプションを指定しなかった場合、net.heartbeat.interval構成可能変数の値がデフォルト値として使用されます。 |
|
応答がタイムアウトになるまでの時間をミリ秒単位で指定します。 このオプションを指定しなかった場合、net.heartbeat.wait構成可能変数の値がデフォルト値として使用されます。 |
|
前回のハートビート要求に対する応答が返されなかった場合に、次のハートビート要求を送信する間隔をミリ秒単位で指定します。 このオプションを指定しなかった場合、net.heartbeat.missing.interval構成可能変数の値がデフォルト値として使用されます。 |
|
前回のハートビート要求に対する応答が返されなかった場合に応答がタイムアウトになるまでの時間をミリ秒単位で指定します。 このオプションを指定しなかった場合、net.heartbeat.missing.wait構成可能変数の値がデフォルト値として使用されます。 |
|
ハートビートが停止していると判断するための、ハートビート応答が連続して返されない最大回数を指定します。 このオプションを指定しなかった場合、net.heartbeat.missing.count構成可能変数の値がデフォルト値として使用されます。 |
|
「グローバルオプション」を参照してください。 |
使用上の注意点
ファイル引数でリビジョン指定子を使用できるか? | ファイル引数でリビジョン範囲を使用できるか? | 最低限必要なアクセスレベル |
---|---|---|
適用外 |
適用外 |
|
関連コマンド
スタンバイサーバにフェイルオーバーします。 |