次の方法で共有


エラー処理について

このトピックでは、HPC ジョブ スケジューラ サービスのエラー処理設定について説明します。 構成オプションを変更する方法については、「HPC ジョブ スケジューラ サービスの構成」を参照してください。

このトピックには、次のセクションが含まれています。

ハートビート オプション

各ノードの HPC Node Manager サービスは、定期的な正常性レポートを HPC ジョブ スケジューラ サービスに送信します。 この正常性レポートは、ハートビートと呼ばれます。 このハートビート信号は、ノードの可用性を検証します。 ノードのハートビートが多すぎると、HPC ジョブ スケジューラ サービスによってノードに到達不能のフラグが設定されます。

正常性プローブには、次のクラスター プロパティ設定が適用されます。

  • ハートビート間隔: 正常性プローブの頻度 (秒単位)。 既定値は 30 秒です。

  • 不在着信ハートビート (非アクティブ数): ノードが到達不能と見なされる前に見逃す可能性があるハートビートの数。 既定値は 3 です。

    手記

    HPC Pack 2012 Service Pack 1 (SP1) 以降では、オンプレミス (ローカル) ノードと Windows Azure ノードの非アクティブ数を構成するための個別の設定が提供されます。 Windows Azure ノードに到達するとネットワーク待機時間が発生する可能性があるため、Windows Azure ノードの既定の非アクティブ数は 10 です。

その他の考慮事項

  • ノードは、次のようなさまざまな理由でハートビートを見逃す可能性があります。

    • ネットワーク接続に関する問題

    • HPC Node Manager サービスがコンピューティング ノードで実行されていない

    • ヘッド ノードとコンピューティング ノードの間の認証エラー

  • 正常性プローブの頻度を増やす (ハートビート間隔短く設定) と、障害をより迅速に検出できますが、ネットワーク トラフィックも増やすことができます。 ネットワーク トラフィックの増加により、クラスターのパフォーマンスが低下する可能性があります。

  • ノードに到達不能のフラグが設定されている場合、そのノードで実行されているジョブは失敗する可能性があります。 ネットワークで断続的な障害が頻繁に発生することがわかっている場合は、不要なジョブエラーを回避するために、非アクティブ数 を増やしたい場合があります。 このトピック 再試行ジョブとタスクも参照してください。

ジョブとタスクを再試行する

HPC ジョブ スケジューラ サービスは、ノードが到達不能になったり、プリエンプション ポリシーによって停止されたりするなど、クラスターの問題によって失敗したジョブとタスクを自動的に再試行します。 指定した回数の試行が失敗した後、HPC ジョブ スケジューラ サービスは、ジョブまたはタスク 失敗したとしてマークします。

次のクラスター プロパティ設定は、ジョブとタスクを再試行する回数を決定します。

  • ジョブ再試行: ジョブを自動的に再試行する回数。 既定値は 3 です。

  • タスク再試行: タスクを自動的に再試行する回数。 既定値は 3 です。

その他の考慮事項

  • [再実行可能な] タスク プロパティが false に設定されている場合、タスクは自動的に再試行されません。

  • ジョブ のプロパティ タスクの失敗時に失敗 が true に設定されている場合、ジョブは自動的に再試行されません。

  • 詳細については、「ジョブとタスクのプロパティについて」を参照してください。

タスクの猶予期間の取り消し

実行中のタスクが実行中に停止すると、アプリケーションが状態情報を保存したり、ログ メッセージを書き込んだり、ファイルを作成または削除したり、サービスが現在のサービス呼び出しの計算を完了したりする時間を許可できます。 タスクの [猶予期間の取り消し] クラスター プロパティを設定することで、アプリケーションが正常に終了できるようにする時間 (秒単位) を構成できます。 既定 タスクの猶予期間の取り消し は 15 秒です。

大事な

Windows HPC Server 2008 R2 では、HPC Node Manager サービスは、CTRL_BREAK シグナルをアプリケーションに送信することで、実行中のタスクを停止します。 猶予期間を使用するには、アプリケーションが CTRL_BREAK イベントを処理する必要があります。 アプリケーションがイベントを処理しない場合、タスクはすぐに終了します。 サービスが猶予期間を使用するには、ServiceContext.OnExiting イベントを処理する必要があります。

その他の考慮事項

  • クラスター管理者またはジョブ所有者は、実行中のタスクを強制的に取り消すことができます。 タスクが強制的に取り消されると、タスクとそのサブタスクは猶予期間をスキップし、すぐに停止します。 詳細については、「ジョブまたはタスクを強制的に取り消す」を参照してください。

  • クラスター上で実行されるアプリケーションが CTRL_BREAK シグナルをどのように処理するかに応じて、猶予期間時間を調整できます。 たとえば、アプリケーションが信号の後に大量のデータをコピーしようとすると、それに応じてタイムアウトを増やすことができます。

ノード解放タスクのタイムアウト

ジョブ所有者は、ノードリリース タスクを追加して、ジョブから解放されるときに各ノードでコマンドまたはスクリプトを実行できます。 ノード リリース タスクは、割り当てられたノードをジョブ前の状態に戻したり、データファイルやログ ファイルを収集したりするために使用できます。

ノードリリースタスクタイムアウト は、ノードリリース タスクの最大実行時間(秒単位)を決定します。 既定値は 10 秒です。

その他の考慮事項

  • ジョブに最大実行時間があり、ノード リリース タスクがある場合、スケジューラはジョブの実行時間が経過する前にジョブ内の他のタスクを取り消します (ジョブの実行時間ノード リリース タスクの実行時間引きます)。 これにより、ノード リリース タスクは、ジョブに割り当てられた時間内に実行できます。

  • ノード リリース タスクは、ジョブが取り消された場合でも実行されます。 クラスター管理者またはジョブ所有者は、ジョブを強制的に取り消して、ノード リリース タスクをスキップできます。 詳細については、「ジョブまたはタスクを強制的に取り消す」を参照してください。

除外されたノードの制限

除外ノードの制限 は、除外ノード ジョブ プロパティに一覧表示できるノードの最大量を指定します。 除外ノード ジョブ プロパティでは、ジョブ スケジューラが特定のジョブの使用を停止するか、使用を控える必要があるノードの一覧を指定できます。

ジョブ所有者またはクラスター管理者が、ジョブ内のタスクが特定のノードで一貫して失敗する場合は、そのノードを Excluded Nodes ジョブ プロパティに追加できます。 除外されたノードの制限 に達すると、一覧にノードを追加しようとすると失敗します。 詳細については、「ジョブの除外されたノードの設定とクリアを する」を参照してください。

SOA ジョブの場合、ブローカー ノードは、(サービス構成ファイル内の) EndPointNotFoundRetryPeriod 設定に従って、除外されたノードの一覧を自動的に更新および維持します。 この設定では、サービス ホストがサービスの読み込みを再試行する期間と、ブローカーが接続を待機する時間を指定します。 この時間が経過すると、ブローカーはノード (サービス ホスト) を 除外ノード 一覧に追加します。 除外されたノードの制限 を超えると、ブローカー ノードは SOA ジョブを取り消します。

手記

クラスターの 除外ノードの制限 を変更した場合、新しい制限が設定された後に変更された除外されたノード リストにのみ新しい制限が適用されます。 つまり、除外されたノード ジョブ プロパティに一覧表示されているノードの数は、ジョブの作成時またはプロパティが変更された時点でのクラスター全体の制限に対してのみ検証されます。

その他の参照