Quality of Service (QoS) の動作とログについて

このトピックでは、kill イベントの実行時のサーバーとサーバーコントローラの動作、フェイルオーバーのトリガ、ログファイルの内容などの QoS 機能の詳細について説明します。

QoS の kill イベント

kill イベントの実行時のサーバーとサーバーコントローラの動作を以下に示します。
  • nsd -kill」では、nsd は生成されません。kill_* ファイルのみが生成されます。
  • サーバーが再起動される場合に限って、コントローラはトラブルシューティングの目的で固有の「nsd -stacks」を生成します。
  • notes.ini ファイルに QoSShutdownNSD=seconds を設定すると、サーバーが QoSShutdownNSD に設定された秒数以内に完全に停止しなかった場合、QoSShutdownNSD に設定された秒数ごとに「nsd -stacks」が生成されます。この notes.ini の設定は、シャットダウンに時間がかかりすぎているサーバーのトラブルシューティングに使用されます。
注: 次の表で、タイムアウトは、qosprobe サーバーアドインが、サーバーの names.nsf ($Servers ビュー) を QOS_PROBE_TIMEOUT に設定された時間 (ミリ秒) 以内に正常に開くことができないことを示します。
表 1. イベントとアクション
イベント コントローラのアクション 設定可能かどうか
調査 (qosprobe) のタイムアウト サーバーは 5 分後に強制終了され、再起動されます。 dcontroller.ini:QOS_PROBE_TIMEOUT=minutes
長期間実行アプリケーションのタイムアウト サーバーは 10 分後に強制終了され、再起動されます。 dcontroller.ini:QOS_APPS_TIMEOUT=minutes
サーバーが共有ハンドルを使い尽くしている サーバーは強制終了され、再起動されます。 なし
サーバーがセッションテーブルを使い尽くしている サーバーは強制終了され、再起動されます。 no
サーバーがネットメモリを使い尽くしている サーバーは強制終了され、再起動されます。 no
サーバーが共有メモリハンドルを使い尽くしている サーバーは強制終了され、再起動されます。 no
サーバーの稼働中のクラッシュ/パニック サーバーは 5 分後に再起動されます。 no
サーバーのシャットダウン (「quit」) に時間がかかりすぎている サーバーは 5 分後に強制終了されます。 dcontroller.ini:QOS_SHUTDOWN_TIMEOUT=minutes
サーバーの再起動 (「restart server」) に時間がかかりすぎている サーバーは 5 分後に強制終了され、再起動されます。 dcontroller.ini:QOS_RESTART_TIMEOUT=minutes
サーバープロセスが異常終了した サーバーは強制終了され、再起動されます。 no

QoS のフェイルオーバーのトリガ

QoS の smart kill では、サーバーを最大で 20 分間停止させることができます。合計停止時間には、調査のタイムアウトの検出 (約 5 分)、すべてのプロセスに関するデータを収集するための nsd の実行 (約 3 分)、サーバーの強制終了 (約 1 分から 2 分)、および再起動 (ゲートタスクの時間を含む - 最大で 10 分) が含まれます。QoS が設定されているサーバーで処理するように指定された新規要求はすべて、そのサーバーに対して smart kill を実行する必要があることを QoS が検出してから数秒以内に、ただちにクラスタメンバーにフェイルオーバーされます。

サーバーが稼働していて処理中であると認識されているときにのみフェイルオーバーが重要になるため、以下の場合の smart kill では、高速フェイルオーバー機能は使用されません。
  • サーバーのシャットダウンに時間がかかりすぎている
  • サーバーの再起動に時間がかかりすぎている
  • サーバーがクラッシュしたため、QoS でクラッシュ後のクリーンアップを行う必要がある
注: notes.ini 設定の QOS_DISABLE_FAILOVER_TRIGGER=1 を使用して、StaticHang メカニズムを無効にすることができます。このパラメータが設定されている場合、triggerImmediateServerFailover ファイルは作成および削除されますが、サーバーが StaticHang を使用してフェイルオーバーを強制することはありません。

QoS コントローラのログファイル

QoS により、新しいログファイルは、Domino® サーバーのデータディレクトリに格納されます。QoS コントローラのログファイルには、QoS コントローラによって収集または処理されたさまざまなイベント、QoS 調査、通常のサーバー再起動、サーバーのクラッシュ、QoS の smart kill に関連するイベント、その他の各種イベントに対応する詳細情報が記録されます。以下のセクションでは、このログファイルとその仕組み、およびサービスのイベントをトラブルシューティングする際のこのログファイルの正しい読み方について説明します。

注: サーバーの問題をこのログファイルでトラブルシューティングしているときに、サポートにこのログファイルを提供することもできます。
ログファイルの命名規則

QoS コントローラのログファイル名には、YYYYMMDDHHmm の形式の 24 時間制のタイムスタンプが含まれています。以下に例を示します。
qoscntrlr201105171528.out

このタイムスタンプは、QoS コントローラが起動された時刻を示します。この例に示すファイル名は、2011 年 5 月 17 日午後 3:28 にサービスが開始された QoS コントローラのログになります。サービスが停止された後、再開された場合は、現在の qoscntrlrYYYYMMDDHHmm.out ファイルに .log という拡張子が付き、新しい qoscntrlrYYYYMMDDHHmm.out ファイルが現在の時刻で作成されます。このような qoscntrlrYYYYMMDDHHmm.log ファイルの経過日数が 14 日を超えると、サービスの開始時に自動的にそのファイルが削除されます。

ログファイルの命名規則

QoS コントローラのログファイル名には、YYYYMMDDHHmm の形式の 24 時間制のタイムスタンプが含まれています。以下に例を示します。
qoscntrlr201105171528.out

このタイムスタンプは、QoS コントローラが起動された時刻を示します。この例に示すファイル名は、2011 年 5 月 17 日午後 3:28 にサービスが開始された QoS コントローラのログになります。サービスが停止された後、再開された場合は、現在の qoscntrlrYYYYMMDDHHmm.out ファイルに .log という拡張子が付き、新しい qoscntrlrYYYYMMDDHHmm.out ファイルが現在の時刻で作成されます。このような qoscntrlrYYYYMMDDHHmm.log ファイルの経過日数が 14 日を超えると、サービスの開始時に自動的にそのファイルが削除されます。

ログファイルの読み方

ログファイルの先頭には、ログに記録された QoS コントローラのこの実行に関する全般的な設定情報が次のように表示されます。
2012/08/06 06:33:34 QoS Controller: Starting QOSPipeWatcher
2012/08/06 06:33:34 QoS Controller: QOS_PROBE_TIMEOUT=5 minutes
2012/08/06 06:33:34 QOSController: QOS_SHUTDOWN_TIMEOUT=5 minutes
2012/08/06 06:33:34 QOSController: QOS_RESTART_TIMEOUT=5 minutes
2012/08/06 06:33:34 QOSController: QOS_APPS_TIMEOUT=10 minutes
2012/08/06 06:33:34 QoS Controller: nsd Program Path=/opt/hcl/notes/latest/linux/nsd.sh
2012/08/06 06:33:34 QoS Controller: QOS_RESTART_LIMIT_MAXIMUM=3
2012/08/06 06:33:34 QoS Controller: QOS_RESTART_LIMIT_PERIOD=30 minutes
2012/08/06 06:33:34 QoS Controller: QOS_NOKILL=false
2012/08/06 06:33:34 QoS Controller: QOS_MAIL_TO=test/hcl
2012/08/06 06:33:34 QoS Controller: QOS_MAIL_SMTP_SERVER=xx
これらの項目は、その他のいくつかの基本項目とともに、サーバーのデータディレクトリにある Domino コントローラの ini ファイル (dcontroller.ini) に設定できます。この場所以降のファイルの残りの部分には、サーバーまたはサーバータスクのうちの 1 つから QoS コントローラに送信された各メッセージのログエントリが記録されます。これらのメッセージの形式は次のようになります。
2012/05/08 00:15:09 QoS Controller: OpMsg=START Type=QOS ObjectType=ServerName ObjectValue=CN=rc45/O=dev ObjectType2=ProcessName ObjectValue2=nserver TimeDate=20120508T001506,95-04
2012/05/08 00:15:09 QoS Controller: OpMsg=START Type=SERVER TimeDate=20120508T001507,40-04
2012/05/08 00:15:21 QoS Controller: OpMsg=READY Type=SERVER TimeDate=20120508T001517,92-04
QoS コントローラのログファイルに記録されるすべてのメッセージには、タイムスタンプが付きます。QoS コントローラがメッセージをログに記録するとき、形式は次のようになります。
TimeDate=20120508T001506,95-04
QoS コントローラの他のスレッドの 1 つがログファイルにメッセージを記録するとき、形式は次のようになります。
2012/05/08 00:15:21 QoS Probe: message
2012/05/08 00:15:21 QoS Applications: message
2012/05/08 00:15:21 QoS Kill: message

ログファイル内で探すべき情報

次の表に、QoS コントローラのログファイルを調べるときに表示される基本的なログイベントの例を示します。

表 2. 基本的なログイベントの例
イベント ログに示される情報の例
通常のサーバーの起動
2012/05/08 00:15:09 QoS Controller: OpMsg=START Type=QOS ObjectType=ServerName ObjectValue=CN=rc45/O=dev ObjectType2=ProcessName ObjectValue2=nserver TimeDate=20120508T001506,95-04
2012/05/08 00:15:09 QoS Controller: OpMsg=START Type=SERVER TimeDate=20120508T001507,40-04
2012/05/08 00:15:10 QoS Applications: Clearing long running apps list
2012/05/08 00:15:21 QoS Controller: OpMsg=READY Type=SERVER TimeDate=20120508T001517,92-04
2012/05/08 00:15:21 QoS Controller: Server is ready to process requests
通常のサーバーのシャットダウン
2012/05/08 00:45:22 QoS Controller: OpMsg=END Type=SERVER ObjectType=Detail ObjectValue=Quit TimeDate=20120508T004516,01-04
2012/05/08 00:45:22 QoS Controller: Deactivating probe...
2012/05/08 00:45:22 QoS Controller: QoS Probe deactivated.
2012/05/08 00:45:26 QoS Controller: OpMsg=END Type=QOS ObjectType=ServerName ObjectValue=CN=rc45/O=dev TimeDate=20120508T004523,51-04
2012/05/08 00:45:27 QoS Applications: Clearing long running apps list
QoS 調査
2012/05/08 00:15:21 QoS Controller: Activating probe...
2012/05/08 00:15:21 QoS Controller: QoS Probe activated.
2012/05/08 00:15:21 QoS Probe: Starting qosprobe...
2012/05/08 00:15:25 QoS Probe: OpMsg=START, Type=PROBE
2012/05/08 00:16:25 QoS Probe: The QoS Probe is probing.
2012/05/08 00:16:25 QoS Probe: SUCCESS (156ms)
2012/05/08 00:17:25 QoS Probe: SUCCESS (16ms)
2012/05/08 00:18:25 QoS Probe: SUCCESS (31ms)
2012/05/08 00:19:25 QoS Probe: SUCCESS (16ms)
2012/05/08 00:20:26 QoS Probe: SUCCESS (15ms)
長時間実行アプリケーション
2012/05/08 00:38:32 QoS Controller: OpMsg=START Type=FIXUP ObjectType=DB ObjectValue=C:\Program Files\HCL\Domino\Data\ddm.nsf TimeDate=20120508T003826,18-04
2012/05/08 00:38:32 QoS Controller: OpMsg=END Type=FIXUP ObjectType=DB ObjectValue=C:\Program Files\HCL\Domino\Data\ddm.nsf TimeDate=20120508T003829,79-04
2012/05/08 00:38:32 QoS Applications: Adding FIXUP[C:\Program Files\HCL\Domino\Data\ddm.nsf] to long running apps list
2012/05/08 00:38:32 QoS Applications: Removing FIXUP[C:\Program Files\HCL\Domino\Data\ddm.nsf] from long running apps list..
2012/05/08 00:47:42 QoS Controller: OpMsg=START Type=COMPACT ObjectType=DB ObjectValue=events4.nsf TimeDate=20120508T004740,23-04
2012/05/08 00:47:42 QoS Controller: OpMsg=END Type=COMPACT ObjectType=DB ObjectValue=events4.nsf TimeDate=20120508T004740,23-04
2012/05/08 00:47:43 QoS Applications: Adding COMPACT[events4.nsf] to long running apps list
2012/05/08 00:47:43 QoS Applications: Removing COMPACT[events4.nsf] from long running apps list

ログファイル内のサーバークラッシュのエビデンス

QoS コントローラは、クラッシュイベントをモニターし、ログに記録して、強制終了と再起動が妥当な時間内に実行されるようにします。QoS コントローラのログ内でこれについてのエビデンスを確認するには、ログファイルで「=CRASH」というテキストを検索します。以下に例を示します。
2012/05/08 01:00:44 QoS Controller: OpMsg=CRASH Type=QOS ObjectType=ServerName ObjectValue=CN=rc45/O=dev TimeDate=20120508T010039,48-04
2012/05/08 01:00:44 QoS Controller: Server CN=rc45/O=dev has crashed.
2012/05/08 01:00:44 QoS Controller: Deactivating probe...
2012/05/08 01:00:44 QoS Controller: QoS Probe deactivated.

ログファイル内の smart kill のエビデンス

QoS コントローラは、サーバーまたは QoS 調査から受け取った情報に基づいて、サーバーをインテリジェントに強制終了するようにコーディングされています。QoS 調査のタイムアウトに基づいた smart kill の結果、QoS コントローラファイルに示される情報の例を以下に示します。
2012/05/08 00:31:41 QoS Probe: SUCCESS (78ms)
2012/05/08 00:32:41 QoS Probe: SUCCESS (16ms)
2012/05/08 00:37:41 The probe thread has not received a message from qosprobe within the timeout period.
2012/05/08 00:37:41 QoS Probe: The qosprobe addin has timed out, is not responding, or is not running.
2012/05/08 00:37:41 QoS Controller: Deactivating probe...
2012/05/08 00:37:41 QoS Controller: QoS Probe deactivated.
2012/05/08 00:37:43 QoS Controller: OpMsg=TIMEOUT Type=PROBE TimeDate=null
2012/05/08 00:37:43 QoS Controller: The controller has received a probe timeout.
2012/05/08 00:37:43 QoS Kill: Triggering failover...
2012/05/08 00:37:47 QoS Kill: Running nsd...
2012/05/08 00:38:12 QoS Kill: Running nsd -kill
2012/05/08 00:38:16 QoS Kill: Setting kill complete.
2012/05/08 00:38:21 QoS Kill: Restarting DominoStarter thread