Endeca Serverの問合せのパフォーマンスは、問合せのワークロード、問合せの複雑性、データ・ドメイン構成、ロードされたレコードの特性、データ・ドメインの索引のサイズなど、特定のデプロイメントの多数の特性によって異なります。これらの特性を考慮して、メモリー消費およびデプロイメントのその他のハードウェア要件を評価するために、ハードウェアのサイズ設定はデプロイメントの前に実行する必要があります。
サイズ設定に影響する特性の1つは、Endeca Serverによって予測されるメモリー消費を見積もることです。
Endeca Serverのメモリー消費は次の各文で特徴付けられます。
- Dgraphによる初期メモリー消費は、プロビジョニングできるデータ・ドメイン数の指標となる見積りまたは予測見積りではありません。Endeca Server Javaアプリケーションが起動されると、そのDgraphプロセスはまず使用するシステム上の大量のRAMを要求します。これは、オペレーティング・システムの診断ツールを実行すると確認できます。ただし、負荷が軽いマシンでDgraphプロセス・サイズを測定しても、Dgraphプロセスが最初に要求する物理メモリーをすべて実際に使用することを示すものではありません。Dgraphプロセスはデータの取込みまたは複雑な問合せを実行する一方で、かなりの量の仮想メモリーを割り当てますが、物理メモリーの使用はシステム上の他のプロセスの需要によって異なります。オペレーティング・システム内の他のプロセスが物理メモリーを要求すると、Dgraphプロセスはメモリーを解放します。他のメモリー集中型のプロセス(他のDgraphプロセスを含む)が存在する場合、Dgraphは物理メモリーの大部分を迅速に解放します。このような圧力がない場合、物理メモリーを無期限に保持できます。
したがって、データ・ドメインが少ないマシンで物理メモリーの使用量を測定しても、多数のデータ・ドメインのメモリー要件の予測見積りにはなりません。結論として、データ・ドメインのサポートを実行するためにDgraphが実際に必要とするメモリーの量を予測する際にこれらの見積りに依存しないでください。
- Endeca Serverは、複数のデータ・ドメインをホストできるかどうかを見積もるために内部ヒューリスティックに依存します。新しいデータ・ドメインをプロビジョニングする場合、Endeca Serverはまずデータ・ドメインをホストするのに十分な容量があるかどうかを判断し、十分な容量がある場合には、データ・ドメインのDgraphプロセスをホストするノードを決定します。(新規または追加の)データ・ドメインをホストするのに十分な容量があるかどうかを計算するために、Endeca Serverはオーバーサブスクライブ、自動アイドリング、メモリー計算およびスレッド計算の各パラメータを使用します。
具体的には、データ・ドメインを割り当てるために、Endeca Serverは新しいデータ・ドメインに十分な処理コアを持つノードを選択します。データ・ドメインをホストするのに十分な処理コアがない場合、追加のデータ・ドメインの作成を拒否します(Endeca Serverがcgroupsを利用するように構成されている場合、この動作はcgroupsが有効になっているLinux 6でより確実に保証されます)。リソースを節約するために、Endeca Serverは自動的にアイドル状態になるように構成されている非アクティブなデータ・ドメインをアイドル状態にして、エンドユーザーのリクエストを受信すると、そのようなデータ・ドメインを自動的にアクティブ化します。Endeca Serverのクラスタ管理者がEndeca Serverインスタンスへのデータ・ドメインの割当を調整できるように、Endeca ServerはEndeca Serverデプロイメントのノードについてコア当たりのスレッド数、および索引サイズに対する割当済仮想メモリーの割合の指定を許可します。
Endeca Serverが独自の内部容量計算を実行する方法、および使用されるヒューリスティックの詳細は、Oracle Endeca Serverクラスタ・ガイドのデータ・ドメイン割当に関するトピックを参照してください。
- Linux 6ではOSレベルのデータ・ドメイン割当保証にcgroupsを利用できます。ユーザーが指定できるパラメータ(データ・ドメインのオーバーサブスクライブ、自動アイドリング、ノードのスレッドおよびCPUコアの数など)以外に、Endeca ServerがOracle Linux 6またはRHEL 6にデプロイされている場合、データ・ドメインの割当にcgroupsを使用して、保証を追加できます。
重要: 割当保証を増やし、多数のデータ・ドメインがプロビジョニングされている場合でもEndeca Serverノードが引き続き動作できるように、Endeca Serverに多数のセルフサービス・アプリケーションをデプロイする場合、Endeca ServerをOracle Linux 6またはRHEL 6 (どちらの場合もEndeca Serverでcgroupsを利用可能)にデプロイすることをお薦めします。cgroupsの詳細は、
データ・ドメインのコントロール・グループ(cgroups)の使用についてを参照してください。
- データ・エンリッチメント・プラグイン(Studioを介してエンリッチメントとして使用)は、Endeca Serverをホストする各マシンへのメモリーの追加を必要とします。Studioでデータ・エンリッチメント・プラグイン(用語抽出など)を使用する予定の場合は、データ・ドメインで同時に実行する予定のデータ・エンリッチメント・プラグインのインスタンスごとに約10GBのメモリーを追加することを検討してください。つまり、データ・ドメイン内のユーザーがこのようなプロセスごとに用語抽出を実行する予定の場合は、このデータ・ドメインをホストするすべてのEndeca Serverマシンで追加のメモリーをプロビジョニングする必要があります。