サーバー可用性インデックス

クラスタ内の各サーバーは、サーバーが最近処理した要求の応答時間を基にして、自身のワークロードを定期的に決定します。ワークロードは 0 から 100 までの数値で表現します。0 は負荷が重いサーバーを示し、100 は負荷が軽いサーバーを示します。この数値をサーバー可用性インデックスといいます。

このタスクについて

応答時間が長くなると、サーバー可用性インデックスは小さくなります。

サーバー可用性インデックスは、サーバーの全処理能力に占める使用可能なサーバーの比率とほぼ同等です。例えば、サーバー可用性インデックスが 65 を示している場合は、サーバーの処理能力の約 65% がまだ使用可能であることになります。社内で使用されているサーバーの容量とリソースはそれぞれ異なりますが、サーバー可用性インデックスは、各サーバーで同じ状況を示します。つまり、使用可能なサーバーの合計可用度を表します。

サーバー可用性インデックスは、拡張係数に基づいています。これはサーバー上の現在のワークロードを示しています。拡張係数は、特定のタイプのトランザクションの最新の応答時間と、サーバーが同じタイプのトランザクションを完了するために要した最短時間とを比較することによって決定されます。例えば、サーバーが「データベースを開く」トランザクションを実行するのに現在平均 12 マイクロ秒かかっているとします。過去に同じトランザクションを実行したときの最短時間が 3 マイクロ秒であった場合、「データベースを開く」トランザクションの拡張係数は 4 になります (現在の時間 12 マイクロ秒を最短時間 3 マイクロ秒で割った数値)。つまり、拡張係数によって、トランザクションを現時点で完了するのに要する時間が、最適な条件で実行した場合の何倍になるかが分かります。

Domino® により、トランザクションの種類別の最短応答時間が、メモリと、サーバーが起動するたびに読み込まれる LOADMON.NCF ファイルに保存されます。サーバーが停止した場合、Domino® によって LOADMON.NCF ファイルが最新情報を使用して更新されます。

現在の拡張係数を判別するために、Domino® では一定の期間にわたり、最も多く使用される Domino® トランザクションの種類を追跡します。デフォルトでは、Domino® は 15 秒の期間で 5 回のトランザクション追跡を実行します。次に、Domino® は各種類のトランザクション処理に要した平均時間を計算し、その時間を同じ種類のトランザクション処理に要した過去の最短時間で割ります。こうして、トランザクションの種類別に拡張係数が決定します。サーバー全体の拡張係数を決定するために、Domino® は全種類のトランザクションに対する拡張係数の平均値を算出します。このとき、最も多く使用されるトランザクションの種類の数値に重み付けします。

サーバーがビジーになればなるほど、負荷の増加によって、パフォーマンスと可用性への影響が増大します。したがって、ビジーなサーバーの負荷を増やすと、ビジーでないサーバーの負荷を増やす場合よりも短時間で拡張係数が大きくなります。

サーバーの速度、処理能力、容量が異なれば、処理が可能な負荷も異なります。このため、2 つのサーバーの拡張係数が同じであっても、サーバーの能力に対する負荷は異なる場合があります。例えば、サーバーが他には何もしていない場合でも、小さなサーバーではトランザクションの実行に長い時間がかかり、拡張係数 40 は、応答までかなりの秒数がかかることを意味します。一方、非常に大きな高速サーバーでは、拡張係数 400 は応答まで 1 秒もかからないことを示します。

可用性インデックスと拡張係数の比較

このタスクについて

可用性インデックスを決定するために、Domino® では、拡張係数を、使用可能なサーバーの全処理能力に対する比率の概数に変換する式を使用します。次の表に、拡張係数を可用性インデックスに変換した例を示します。

注: 次の表の値は、サーバーが最大負荷に達したことを示す拡張係数が 64 の場合の値です。
1. 拡張係数が 64 の場合の例

拡張係数

可用性インデックス

1<nozeros>

100<nozeros>

2<nozeros>

83<nozeros>

4<nozeros>

67<nozeros>

8<nozeros>

50<nozeros>

16<nozeros>

33<nozeros>

32<nozeros>

17<nozeros>

64<nozeros>

0<nozeros>

注: 拡張係数と可用性インデックスはサーバーの応答時間のみを表わしていますが、この時間は、一般にクライアント側で見た応答時間のごく一部にすぎません。例えば、クライアント側で見た応答時間は、クライアントとサーバー間のネットワーク応答時間が相当な部分を占めるのが普通です。

サーバーが最大負荷に達したことを示す拡張係数の値を変更する

このタスクについて

Domino® のワークロード均衡を効果的に使用するには、サーバーのワークロードがフェイルオーバーするレベルに達したときに、サーバーがフェイルオーバーするように拡張係数と可用性インデックスの関係を調整する必要があります。これは、サーバーが最大負荷に達したことを示す拡張係数の指定により行います。Domino® でのデフォルト値は 64 です。拡張係数がこの値に達すると、サーバーは最大負荷に達したとみなされ、可用性インデックスは 0 に低下します。

注: Show AI サーバーコマンドを使用すると、可用性インデックスの推奨値を表示できます。

特に高性能な高速サーバーでは、最大負荷に達したとみなす拡張係数の値を増加させることができます。非常に高速なサーバーでは、この値を数百以上に設定できます。特に低速なサーバーでは、この値を低くできます。

サーバーが最大負荷に達したことを示す拡張係数の値を変更するには、NOTES.INI ファイルに次の設定を追加して、サーバーを再起動します。(または、Set Configuration コマンドを使用します)。

SERVER_TRANSINFO_RANGE=n 

n の値は、2 の n 乗が、サーバーが最大負荷に達したことを示す拡張係数に等しくなるよう設定します。n のデフォルト値は 6 で、2 の 6 乗は 64 のため、拡張係数は 64 となります。SERVER_TRANSINFO_RANGE を 7 に設定すると、サーバーが最大負荷に達したことを示す拡張係数の値は 128 になります。SERVER_TRANSINFO_RANGE を 8 にした場合は、この値は 256 になります。

SERVER_TRANSINFO_RANGE の最適値を決定するには、次の操作を実行します。

手順

  1. 負荷が大きいときに、サーバー上の拡張係数をモニターします。コンソールコマンド show stat server.expansionfactor を使用してこれを実行できます。この間に、パフォーマンス統計もモニターできます。負荷が大きいときの拡張係数の値を多数記録し、サーバーが最大負荷に達したことを示す拡張係数の値を決定します。
  2. 2 の SERVER_TRANSINFO_RANGE 乗が手順 1 で選択した拡張係数の値となるよう、SERVER_TRANSINFO_RANGE の値を決定します。

タスクの結果

サーバーが最大負荷に達したことを示す拡張係数の値を変更すると、拡張係数と可用性インデックスの関係が変化します。次の表に、SERVER_TRANSINFO_RANGE が 8 のときの拡張係数と可用性インデックスの関係を示します。2 の 8 乗は 256 であるため、この場合の最大拡張係数は 256 になります。

2. 拡張係数と利用可能インデックス間の変換例

拡張係数

可用性インデックス

1<nozeros>

100<nozeros>

2<nozeros>

88<nozeros>

4<nozeros>

75<nozeros>

8<nozeros>

63<nozeros>

16<nozeros>

50<nozeros>

32<nozeros>

38<nozeros>

64<nozeros>

25<nozeros>

128<nozeros>

13<nozeros>

256<nozeros>

0<nozeros>

サーバーコンソールコマンド Show AI を使用すると、この変数の適正値を取得できます。サーバーを負荷をかけた状態でしばらく稼働させた後、このコマンドを入力すると、そのサーバーの拡張係数の履歴と AI が表示されます。

拡張係数の計算に使用されるデータ量を変更する

このタスクについて

次の NOTES.INI 設定を使用すると、拡張係数を求めるために Domino® により収集されるデータ量を変更できます。この変更は、通常は不要です。

  • Domino® で使用するデータ収集期間の回数を変更するには、NOTES.INIServer_Transinfo_Max=x を設定します。x は、Domino® で使用する収集期間の回数です。
  • データ収集期間の長さを変更するには、NOTES.INIServer_Transinfo_Update_Interval=x を設定します。x は、各収集期間の長さ (秒) です。