Citrix ADC

カスタムロード方法

カスタムロードバランシングは、CPU 使用率、メモリ、応答時間などのサーバパラメータに対して実行されます。カスタムロード方式を使用する場合、Citrix ADCアプライアンスは通常、アクティブなトランザクションを処理していないサービスを選択します。負荷分散設定のすべてのサービスがアクティブなトランザクションを処理している場合、アプライアンスは負荷が最も小さいサービスを選択します。ロードモニタと呼ばれる特殊なタイプのモニタは、ネットワーク内の各サービスの負荷を計算します。ロードモニタはサービスの状態をマークしませんが、サービスが UP でない場合、ロードバランシングの決定からサービスを取り出します。

ロードモニタの詳細については、ロードモニタについてを参照してください。次の図は、ロードモニタの動作を示しています。

図1:負荷モニタの動作方法

customload

ロードモニタは、SNMP(簡易ネットワーク管理プロトコル)プローブを使用して、SNMP GET 要求をサービスに送信することによって、各サービスの負荷を計算します。このリクエストには、1 つ以上のオブジェクト ID (OID) が含まれます。サービスは、SNMP OID に対応するメトリックとともに、SNMP GET 応答で応答します。ロードモニタは、以下に説明する応答メトリックを使用して、サービスの負荷を計算します。

負荷モニターは、次のパラメーターを使用してサービスの負荷を計算します。

  • Citrix ADCアプライアンスのテーブルとして存在する、SNMPプローブを介して取得されるメトリック値。
  • 各メトリックに設定されたしきい値。
  • 各指標に割り当てられた重み。

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

  • Service-HTTP-1 は 20 メガバイト (MB) のメモリを使用しています。
  • Service-HTTP-2 では、70 MB のメモリを使用しています。
  • Service-HTTP-3 は 80 MB のメモリを使用しています。

負荷分散されたサーバーは、CPU やメモリ使用量などのメトリックをサービスにエクスポートし、それらを負荷モニターに提供することができます。ロードモニタは、OID が含まれたSNMP GET 要求をサービスに送信します。STRING タイプの SNMP OID はサポートされません。これは、STRING OID を使用して負荷を計算できないためです。負荷は、INT や gauge32 などの他のデータ型を使用して計算できます。3 つのサービスが要求に応答します。Citrix ADCアプライアンスは、エクスポートされたメトリックを比較し、使用可能なメモリが多くなるため、Service-HTTP-1を選択します。次の図は、このプロセスを示しています。

図2:カスタムロードメソッドの仕組み

custom_working2

各要求が10 MBのメモリを使用する場合、Citrix ADCアプライアンスは次のように要求を配信します。

  • Service-HTTP-1 は、N 値が最小であるため、1 番目、2 番目、3 番目、4 番目、5 番めの要求を受信します。
  • Service-HTTP-1 と Service-HTTP-2 は同じ負荷を持つようになったため、仮想サーバーはこれらのサーバーのラウンドロビン方式に戻ります。したがって、Service-HTTP-2 は 6 番目の要求を受信し、Service-HTTP-1 は 7 番目の要求を受信します。
  • Service-HTTP-1、Service-HTTP-2、Service-HTTP-3 はすべて同じ負荷を持つようになったため、仮想サーバもService-HTTP-3 のラウンドロビン方式に戻ります。したがって、Service-HTTP-3 は 8 番目の要求を受信します。

次の表は、N の計算方法をまとめたものです。

リクエストを受け取りました 選択されたサービス 現在のN値(有効取引数) 注釈
Request-1 Service-HTTP-1; (N = 20) N = 30 Service-HTTP-3 の最小値は N です。
Request-2 Service-HTTP-1; (N = 30) N = 40 -
Request-3 Service-HTTP-1; (N = 40) N = 50 -
Request-4 Service-HTTP-1; (N = 50) N = 60 -
Request-5 Service-HTTP-1; (N = 60) N = 70 -
Request-6 Service-HTTP-1; (N = 70) N = 80 Service-HTTP-2 とService-HTTP-3 は、同じ N 値を持ちます。
Request-7 Service-HTTP-2; (N = 70) N = 80 Service-HTTP-3 は、同じ N 値を持ちます。
Request-8 Service-HTTP-1; (N = 80) N = 90 Service-HTTP-1、Service-HTTP-2、およびService-HTTP-3 は、同じ N 値を持ちます。

サービスに異なる重みが割り当てられている場合、カスタムロードアルゴリズムは、各サービスの負荷と各サービスに割り当てられた重みの両方を考慮します。次の式で値 (Nw) を使用してサービスを選択します。

Nw = (N) * (10000/重量)

前の例のように、Service-HTTP-1 に重みが 4、Service-HTTP-2 に重みが 3、Service-HTTP-3 に重みが 2 が割り当てられているとします。各要求が10 MBのメモリを使用する場合、Citrix ADCアプライアンスは次のように要求を配信します。

  • Service-HTTP-1 は、Nw の値が最小であるため、1 番目、2 番目、3 番目、4 番目、5 番目、6 番目、7 番目、8 番めの要求を受信します。
  • Service-HTTP-2 は、このサービスの Nw 値が最も小さいので、9 番目の要求を受信します。

Service-HTTP-3 は最大 Nw 値であるため、ロードバランシングには考慮されません。

次の表は、Nw の計算方法をまとめたものです。

|リクエストを受け取りました|選択されたサービス|現在のNw値(有効なトランザクション数)*(10000/重量)|注釈 |-|-|-|-| |Request-1|Service-HTTP-1; (Nw = 50000)|Nw = 75000|Service-HTTP-1 は Nw 値の最小値を持ちます。 |Request-2|Service-HTTP-1; (Nw = 5000)|Nw = 100000|-| |Request-3|Service-HTTP-1; (Nw = 15000)|Nw = 125000|-| |Request-4|Service-HTTP-1; (Nw = 20000)|Nw = 150000|-| |Request-5|Service-HTTP-1; (Nw = 23333.34)|Nw = 175000|-| |Request-6|Service-HTTP-1; (Nw = 25000)|Nw = 200000|-| |Request-7|Service-HTTP-1; (Nw = 23333.34)|Nw = 225000|-| |Request-8|Service-HTTP-1; (Nw = 25000)|Nw = 250000||-| |Request-9|Service-HTTP-2; (Nw = 233333.34)|Nw = 266666.67|Service-HTTP-2 has the lowest Nw value.

Service-HTTP-1 は、アクティブなトランザクションを完了するか、他のサービス (Service-HTTP-2 および Service-HTTP-3) の Nw 値が 400,000 に等しい場合に、ロードバランシングの対象として選択されます。

次の図は、重みの割り当て時にCitrix ADCアプライアンスがカスタムロード方法を使用する方法を示しています。

図3:ウェイトが割り当てられている場合のカスタムロード方法の動作

カスタムロードウェイト

カスタムロード方法を設定するには、ポリシーを含まないロードバランシング方式の設定を参照してください。

カスタムロード方法