ADC

最小リクエスト方式

最小リクエスト方式を使用するように構成された負荷分散仮想サーバーは、受信したリクエストが最も少ないサービスを選択します。

たとえば、Service-HTTP-1、Service-HTTP-2、Service-HTTP-3 の 3 つのサービスを考えてみます。

  • サービス-HTTP-1は3つのリクエストを処理しています。
  • サービス-HTTP-2は15個のリクエストを処理しています。
  • サービス-HTTP-3はリクエストを処理していません。

次の図は、NetScalerが最小リクエスト方式を使用して、受信するリクエストごとにサービスを選択する方法を示しています。

図1:最小リクエスト負荷分散方式の仕組み

leastrequest-working

この例では、仮想サーバーは、リクエストが最も少ないサーバーを選択して、受信リクエストごとにサービスを選択します。

リクエストは次のように転送されます:

  • Service-HTTP-3 はリクエストを何も処理していないため、最初のリクエストを受信します。

    注:リクエストのないサービスが最初に選択されます。

  • Service-HTTP-3 は、2 番目と 3 番目のリクエストを受信します。これは、サービスのリクエストの数が 2 番目に少ないためです。

  • Service-HTTP-1は、Service-HTTP-1とService-HTTP-3のリクエスト数が同じであるため、4番目のリクエストを受け取ります。仮想サーバーは、ラウンドロビン方式を使用してそれらのいずれかを選択します。

  • Service-HTTP-3 は 5 番目の要求を受信します。

  • Service-HTTP-1 は、Service-HTTP-1 とService-HTTP-3 の両方がService-HTTP-2 と同じ数の要求を処理するまで、6 番目の要求を受信します。次に、NetScalerは、サービスが最も負荷の少ないサービスになるか、その順番がラウンドロビンキューに入ると、Service-HTTP-2への要求の転送を開始します。

注:

Service-HTTP-2 へのリクエストが完了すると、他の 2 つのサービスのそれぞれが 15 個のリクエストを受け取る前に、新しいリクエストが届く可能性があります。

次の表は、負荷分散設定でリクエストがサービス間でどのように分散されるかを示しています。

受信リクエスト サービス選択済み 現在のリクエスト数 注釈
Request-1 サービス-HTTP-3; (N = 0) 1 サービス-HTTP-3のリクエストが最も少ないです。
Request-2 サービス-HTTP-3; (N = 1) 2 サービス-HTTP-3のリクエストが最も少ないです。
Request-3 Service-HTTP-3; (N = 2) 3 -
Request-4 Service-HTTP-1; (N = 3) 4 サービス-HTTP-1とサービス-HTTP-3のリクエスト数は同じです。
Request-5 Service-HTTP-3; (N = 3) 4 サービス-HTTP-1とサービス-HTTP-3のリクエスト数は同じです。
Request-6 サービス-HTTP-1; (N = 4) 5 -
Request-7 Service-HTTP-3; (N = 4) 5 -
Request-8 Service-HTTP-1; (N = 5) 6 -

Service-HTTP-2は、すべてのリクエストが完了したとき、または他のサービス(Service-HTTP-1とService-HTTP-3)にそれぞれ15個以上のリクエストがある場合に負荷分散のために選択されます。

NetScalerでは、ウェイトをサービスに割り当てるときに最小リクエスト方式を使用することもできます。次の式の値 (Nw) を使用してサービスを選択します:

Nw = (アクティブなリクエストの数) * (10000/重量)

次の例は、サービスに重みが割り当てられているときに、NetScalerが最小リクエスト方式を使用して負荷分散するサービスを選択する方法を示しています。前の例では、サービス HTTP-1 に 2 の重みが割り当てられ、サービス HTTP-2 には 3 の重みが割り当てられ、サービス HTTP-3 には 4 の重みが割り当てられているとします。リクエストは次のように転送されます:

  • Service-HTTP-3 は、サービスがリクエストを処理していないため、最初のリクエストを受信します。

    注:サービスがリクエストを処理しない場合、NetScalerは各サービスに割り当てられた重みに関係なくラウンドロビン方式を使用します。

  • Service-HTTP-3は、サービスのNw値が最も低いため、2番目、3番目、4番目、5番目、6番目のリクエストを受け取ります。

  • サービス-HTTP-1 は7番目のリクエストを受け取ります。Service-HTTP-1 と Service-HTTP-3 は同じ Nw 値を持つため、アプライアンスはラウンドロビン方式でロードバランシングを実行します。したがって、Service-HTTP-3 は 8 番目の要求を受信します。

次の表は、前述の 3 つのサービスの負荷分散設定でリクエストがどのように分散されるかを示しています。

リクエストを受け取りました サービス選択済み 現在の新規 (リクエスト数) * (10000/重量) 値 注釈
Request-1 サービス-HTTP-3; (新規 = 0) Nw = 2500 サービス HTTP-3 の Nw 値は最も低いです。
Request-2 Service-HTTP-3; (New = 2500) Nw = 5000  
Request-3 Service-HTTP-3; (Nw = 5000) Nw = 7500  
Request-4 Service-HTTP-3; (New = 7500) Nw = 10000  
Request-5 Service-HTTP-3; (Nw = 10000) Nw = 12500  
Request-6 Service-HTTP-3; (Nw = 12500) Nw = 15000  
Request-7 Service-HTTP-1; (Nw = 15000) Nw = 20000 サービス HTTP-1 とサービス HTTP-3 の Nw 値は同じ
Request-8 Service-HTTP-3; (Nw = 15000) Nw = 17500  

サービス-HTTP-2は、要求が完了したとき、または他のサービス(サービス-HTTP-1およびサービス-HTTP-3)のNw値が50000に等しいときに、負荷分散のために選択されます。

次の図は、サービスに重みが割り当てられているときにNetScalerがどのように最小リクエスト方式を使用するかを示しています。

図2:重みが割り当てられた場合の最小リクエスト負荷分散方式の仕組み

重みとメソッドを割り当てる

最小リクエストメソッドを設定するには、「 ポリシーを含まない負荷分散メソッドの設定」を参照してください。

最小リクエスト方式

この記事の概要