過大サブスクライブがハードウェア使用率に影響を与える仕組み

データ・ドメイン・プロファイルは、Endeca Serverクラスタがホストするデータ・ドメインに対して提供されるハードウェア・リソースを定義します。このトピックでは、データ・ドメインの過大サブスクライブとハードウェア使用率の間の相互作用について説明します。

データ・ドメイン・プロファイルは、データ・ドメインに割り当てたリソースを制御するために管理者が定義し、Endeca Serverでホストされるデータ・ドメインで異なるレベルのサービスを実現するメカニズムを提供します。

この例では、それらの補助図とともに、Endeca ServerクラスタのノードでCPUリソースの使用率にデータ・ドメイン・プロファイルが関連する状況について説明しています。

注意: このトピックの例では、oversubscribeおよびnum-compute-threads用のデータ・ドメイン・プロファイルについて説明しますが、autoIdle用の設定は考慮していません。autoIdletrueに設定した場合は、Endeca Serverの変動リソースにも影響を与え、過大サブスクライブの動作を妨げます。詳細は、「アイドリングがデータ・ドメインの動作に影響を与える仕組み」を参照してください。

過大サブスクライブされていないデータ・ドメインによるCPU使用率

CPUリソースが過大サブスクライブされないように構成されるデータ・ドメイン・プロファイルを構成する方法について数個の可能な方法を次の図は示しています。

データ・ドメイン・プロファイルで過大サブスクライブを禁止することは、そのようなプロファイルで指定されたものに基づいてプロファイルにハードウェア・リソースをEndeca Serverクラスタにより割り当てますが、これはEndeca Serverノードにこれらのリソースがある場合のみであることを意味します。

endeca-cmd put-dd-profileの次のオプションにより、過大サブスクライブ禁止用とハードウェア使用率用にパラメータを制御します。
  • --oversubscribe false
  • --num-compute-threads <num_threads>

endeca-cmdのオプションに加えて、クラスタWebサービスのputDataDomainProfile操作から同等パラメータ(allowOversubscribenumComputeThreads)を使用できます。

ホストしているドメインの数を関数として単一Endeca ServerノードのCPU使用率を図は示します。

過大サブスクライブ禁止ノードにおけるCPU使用率とドメインの数を示すグラフ
この図では、2つのユースケースが説明されています。
  • 過大サブスクライブされない、専用プロファイル。本番アプリケーションをサポートするデータ・ドメインにこのプロファイルが適用可能な場合があります。CPU処理容量の100%をこのデータ・ドメインに割り当てる単一Endeca Serverノードでホストされている単一ドメインにより、このタイプの使用率が図で示されています。

  • 過大サブスクライブされない、共有プロファイル。このプロファイルにより、Endeca ServerマシンのCPUを複数のデータ・ドメインにおいて分割します。2つのデータ・ドメイン(それぞれがCPU処理容量の25%をEndeca Serverノードごとに利用します)によりこのタイプの使用率が図で示されています(この場合、CPU使用率の合計は50%です)。

過大サブスクライブされているデータ・ドメインによるCPU使用率

次の例では、過大サブスクライブ可能なノードでEndeca Serverがドメインをホストできるプロファイルを示します。

プロファイルで指定されたリソースをEndeca Serverで割り当てますが、これらのリソースが他のドメインに割り当てられているノードでドメインをホストするように選択できることを、過大サブスクライブ可能なプロファイルは意味します。つまり、実際に利用可能なリソースをドメイン割当て済リソースが超えるノードでドメインをホストできることを過大サブスクライブ・プロファイルによりEndeca Serverクラスタに指示します。たとえば、12個のCPUを搭載したマシンで4個のCPUのDgraphを10個、Endeca Serverがホストしている場合があります。

Endeca Serverノードが過大サブスクライブされると、ホストされているドメインでは利用可能なリソースで競合します。リソースで競合する需要の管理が、基盤となるオペレーティング・システムに委任されます。

endeca-cmd put-dd-profileの次のオプションにより、過大サブスクライブ可能用とハードウェア使用率用にパラメータを制御します(同等のパラメータはクラスタWebサービスに存在します)。
  • --oversubscribe true
  • --num-compute-threads <num_threads>

次の図は、過大サブスクライブされている共有データ・ドメイン・プロファイルの4つの例を示します。

過大サブスクライブが可能なノードにおけるCPU使用率とデータ・ドメインの数を示すグラフ
この図では、左から右の方向に、次のデータ・ドメイン・プロファイルがサブスクライブされています。
  • Endeca Serverノードでホストされているデータ・ドメインでそのCPUの50%を利用する単一共有データ・ドメインを最初のシナリオは示します。Endeca Serverノードで十分なCPU処理能力がない場合でも、必要なCPU処理容量がデータ・ドメインに割り当てられます。過大サブスクライブできるようにそのプロファイルが構成されているためです。この例では、ノードでホストされている単一ドメインのみがあるので、ノード自体は過大サブスクライブされていません。
  • 2番目のシナリオは、2つの共有データ・ドメインを示します。ここでは、Endeca Serverノードごとに2つのDgraphノード(それぞれは別のデータ・ドメイン)をホストし、過大サブスクライブできるように構成されています。この例では、Endeca Serverノードは過大サブスクライブされていませんが、十分にサブスクライブされています。2つのドメインは合計するとCPUリソースの100%を使用しているからです。
  • 次のシナリオは、3つの共有データ・ドメイン(すべてのデータ・ドメインを合計するとEndeca ServerノードでCPUの150%を利用できます)を示します。この例では、ノードは過大サブスクライブされています。CPUリソースの150%が、ホストされている3つのドメインに割り当てられているからです。
  • 最後のシナリオは、4つの共有データ・ドメイン(すべてのデータ・ドメインを合計するとEndeca ServerノードでCPUの200%を利用できます)を示します。この例では、Endeca Serverノードも過大サブスクライブされています。

過大サブスクライブされたプロファイルは、厳格なパフォーマンス保証が不要なドメイン(開発やテストのシナリオなど)で有用でない場合があります。