Citrix ADC

仮想サーバレベルの低速スタートにより、新しいサービスの負荷を段階的にステップアップ

Citrix ADCアプライアンスは、サービスが負荷分散構成に追加されるか、または状態がDOWNからUPに変わった直後に、サービスの負荷(サービスが1秒あたりに受信するリクエスト数)を徐々に増加するように構成できます(以下、「新規サービス」という用語は、両方の状況)。選択した負荷値と間隔(手動スロースタート)で手動で負荷を増やしたり、サービスが設定内の他のサービスと同じ数の要求を受信するまで、指定した間隔(自動スロースタート)で負荷を増やしたりするようにアプライアンスを設定できます。新しいサービスのランプアップ期間中、アプライアンスは設定された負荷分散方式を使用します。

この機能はグローバルには使用できません。仮想サーバごとに構成する必要があります。この機能は、次の負荷分散方法のいずれかを使用する仮想サーバーでのみ使用できます。

  • ラウンドロビン
  • 最小接続
  • 応答時間の最短短短縮
  • 最小帯域幅
  • 最小パケット
  • LRTM(最小応答時間方式)
  • カスタムロード

この機能を使用するには、次のパラメータを設定する必要があります。

  • 新しいサービスリクエストレート。レートが増加するたびに、新しいサービスに送信されるリクエストの数または割合を増加させる量です。つまり、増分サイズを、1 秒あたりのリクエスト数または既存のサービスによってその時点で負担される負荷の割合で指定します。この値を 0 (ゼロ) に設定すると、新しいサービスではスロースタートは実行されません。

    注:自動スロースタートモードでは、指定した値によって新しいサービスに対する負荷が他のサービスよりも重い場合、最終的な増分は指定された値よりも小さくなります。

  • 増分間隔(秒単位)。この値を 0 (ゼロ) に設定すると、ロードは自動的に増加しません。手動でインクリメントする必要があります。

自動スロースタートでは、次のいずれかの条件が適用されると、サービスはスロースタートフェーズから取り除かれます。

  • 実際の要求レートが、新しいサービス要求レートよりも低くなっています。
  • サービスは、連続する 3 つの増分間隔でトラフィックを受信しません。
  • 要求レートが 200 回増加しました。
  • 新しいサービスが受信する必要があるトラフィックの割合が 100 以上です。

手動のスロースタートでは、サービスはそのフェーズから外れるまで、スロースタートフェーズのままです。

手動スロースタート

新しいサービスの負荷を手動で増やす場合は、負荷分散仮想サーバーの増分間隔を指定しないでください。新しいサービスリクエストレートと単位だけを指定します。間隔を指定しないと、アプライアンスは定期的に負荷を増やしません。いずれかのパラメータを手動で変更するまで、新しいサービスリクエストレートとユニットの組み合わせで指定された値で新しいサービスの負荷が維持されます。たとえば、新しいサービスリクエストレートとユニットパラメータをそれぞれ 25、「per second」に設定した場合、アプライアンスは、いずれかのパラメータを変更するまで、新しいサービスの負荷を 1 秒あたり 25 リクエストで維持します。新しいサービスがスロースタートモードを終了し、既存のサービスと同じ数の要求を受信する場合は、新しいサービスリクエストレートパラメータを 0 に設定します。

たとえば、仮想サーバを使用して、ラウンドロビンモードで Service1 と Service2 の 2 つのサービスをロードバランシングしているとします。さらに、仮想サーバが 1 秒あたり 240 要求を受信し、負荷をサービス間で均等に分散していると仮定します。新しいサービス Service3 が構成に追加されると、負荷の全シェアを送信する前に、1 秒あたり 10、20、および 40 のリクエストの値を使用して手動で負荷を増やすことができます。次の表に、3 つのパラメータを設定する値を示します。

表1. パラメータ値

パラメーター
間隔 (秒) 0
新しいサービス・リクエスト・レート 選択した間隔で 10、20、40、0
新しいサービス要求レートの単位 1 秒あたりのリクエスト数

新しいサービスリクエストのレートパラメータを 0 に設定すると、Service3 は新しいサービスとは見なされなくなり、負荷の完全なシェアを受け取ります。

Service3 のランプアップ期間中に、別のサービス Service4 を追加することを想定しています。この例では、新しいサービスリクエストレートパラメータが 40 に設定されている場合、Service4 が追加されます。したがって、Service4 は 1 秒あたり 40 要求を受信し始めます。

次の表に、この例で説明した期間中のサービスの負荷分散を示します。

表2。負荷を手動でステップアップするときのサービスの負荷分散

  新しいサービスリクエストのレート = 10 要求/秒(サービス 3 追加) 新しいサービスリクエストのレート = 20 要求/秒 新しいサービスリクエストのレート = 40 要求/秒(サービス 4 追加) 新しいサービスリクエストレート = 0 要求/秒(新しいサービスはスロースタートモードを終了します)
Service1 115 110 80 60
Service2 115 110 80 60
Service3 10 20 40 60
Service4 - - 40 60
合計要求/秒(仮想サーバの負荷) 240 240 240 240

自動スロースタート

アプライアンスが新しいサービスの負荷を一定の間隔で自動的に増加させたい場合は、新しいサービスリクエストレートパラメータ、units パラメータ、および増分間隔を設定します。すべてのパラメータが 0 以外の値に設定されている場合、アプライアンスは、新しいサービスリクエストレートの値だけ新しいサービスに対する負荷を、指定した間隔で、サービスが負荷の全シェアを受信するまで増加させます。

たとえば、サービス 1、サービス 2、サービス 3、サービス 4 の 4 つのサービスがロードバランシング仮想サーバー vserver1 にバインドされているとします。さらに、vserver1 は 1 秒あたり 100 件の要求を受信し、負荷をサービス全体に均等に分散します (1 サービスあたり 1 秒あたり 25 件の要求)。構成に 5 番目のサービス Service5 を追加すると、アプライアンスは 1 秒あたり 20 件のリクエストを受信するまで、最初の 10 秒間、1 秒あたり 4 件のリクエストを、次の 10 秒間は 1 秒あたり 8 件というように新しいサービスを送信します。この要件については、次の表に、3 つのパラメータを設定する値を示します。

表3. パラメータ値

パラメーター
間隔 (秒) 10
増分値 4
新しいサービス要求レートの単位 1 秒あたりのリクエスト数

この設定では、新しいサービスは、追加または状態が DOWN から UP に変更されてから 50 秒後に既存のサービスと同じ数の要求を受信し始めます。この期間の各間隔で、アプライアンスは、段階的な増分がない場合に、新しいサービスに送信された過剰な要求を既存のサーバーに分配します。たとえば、段階的な増分がない場合、Service5 を含む各サービスは 1 秒あたり 20 のリクエストを受信することになります。Service5 が 1 秒あたり 4 リクエストしか受信しない最初の 10 秒間に段階的に増分すると、アプライアンスは 1 秒あたり 16 件を超えるリクエストを既存のサービスに分配します。その結果、次の表と図に示す分散パターンが 50 秒間に渡って生成されます。50 秒が経過すると、Service5 は新しいサービスとは見なされなくなり、トラフィックの通常のシェアを受信します。

表4. Service5 の追加直後の 50 秒間の全サービスの負荷分散パターン

  0秒 10秒 20秒 30秒 40秒 50秒
サービス1の所要時間/秒 25 24 23 22 21 20
サービス2の所要時間/秒 25 24 23 22 21 20
サービス3の所要時間/秒 25 24 23 22 21 20
サービス4 の所要時間/秒 25 24 23 22 21 20
サービス5の所要時間/秒 0 4 8 12 16 20
合計要求/秒(仮想サーバの負荷) 100 100 100 100 100 100

図1:Service5追加直後の50秒間の全サービス負荷分散パターンのグラフ

負荷分布グラフ

別の要件として、アプライアンスが既存のサービスに対する負荷の Service5 25% を、最初の 5 秒間に 50% を、次の 5 秒間に 50% を、1 秒あたり 20 のリクエストを受信するまで送信するということが挙げられます。この要件については、次の表に、3 つのパラメータを設定する値を示します。

表5. パラメータ値

パラメーター
間隔 (秒) 5
増分値 25
新しいサービス要求レートの単位 パーセント

この設定では、サービスは、追加または状態が DOWN から UP に変更されてから 20 秒後に、既存のサービスと同じ数の要求を受信し始めます。新しいサービスのランプアップ期間中のトラフィック分散は、前述のトラフィック分散と同じです。ステップ単位の単位は「1 秒あたりの要求数」です。

スロースタートパラメーターの設定

スロースタートパラメータを設定するには、set lb vserver または add lb vserver コマンドを使用します。次のコマンドは、仮想サーバーを追加するときにスロースタートパラメータを設定するためのものです。

コマンドラインインターフェイスを使用して新しいサービスの段階的な負荷増分を構成するには

コマンドプロンプトで次のコマンドを入力して、サービスの負荷の段階的な増分を構成し、構成を確認します。

add lb vserver <name> <serviceType> <IPAddress> <port> [-newServiceRequest <positive_integer>] [<newServiceRequestUnit>] [-newServiceRequestIncrementInterval <positive_integer>]

show lb vserver <name>

set lb vserver BR_LB -newServiceRequest 5 PER_SECOND -newServiceRequestIncrementInterval 10
Done

show lb vserver BR_LB
BR_LB (192.0.2.33:80) - HTTP Type: ADDRESS
State: UP
...
...
New Service Startup Request Rate: 5 PER_SECOND, Increment Interval: 10
...
...
Done

構成ユーティリティを使用して新しいサービスの段階的な負荷増分を構成するには

  1. [トラフィック管理] > [負荷分散] > [仮想サーバー] に移動し、仮想サーバーを開きます。
  2. [詳細設定] で [方法] を選択し、次のスロースタートパラメータを設定します。
    • 新しいサービス起動要求レート。
    • 新しいサービス・リクエスト・ユニット。
    • 増分間隔。

仮想サーバレベルの低速スタートにより、新しいサービスの負荷を段階的にステップアップ