2016-09-04 7 views
0

私はelasticsearchの新作です.2ノードクラスタを持ち、1つのインデックスのための2つのプライマリシャードと1つのレプリカの設定を持っています。ノード1はP0、R1を持ち、ノード2はP1、 。後で私はレプリカの数を0に減らすと仮定します。シャードP0とP1は、レプリカが空いているディスクスペースを占有するように自動的にサイズを変更し、レプリカを持っていたとき以前はインデックス作成に大きなディスクスペースを使用できます。シャルドの弾性サーチサイジング

答えて

0

レプリカシャードは、同じ文書を含んでいるため、プライマリと同じスペースを必要とします。つまり、索引に100万のドキュメントを索引付けした後、各主要シャードにはその半分のドキュメント、つまり500Kのドキュメントが含まれ、各レプリカにも同数のドキュメントが含まれます。

各文書は、その後、1キロバイトの重量を量る場合:

  • プライマリー断片P0が
  • R0は、プライマリー断片のP1 500メガバイト
  • 計量500K文書計量500K文書を有し有する複製断片を500メガバイト計量500K文書を有します500メガバイト
  • 複製シャードR1は目を意味500メガバイト

を計量500Kの文書を持っていますインデックスには、ノード上に2GBのディスク容量があります。後でレプリカの数を0に減らすと、プライマリシャードが占有できる1GBの空き容量が確保されます。

ただし、そうすることで確実にディスク容量が増えますが、冗長性はもうなくなり、2つのノードにインデックスを広めることはできません。これは、開始するレプリカの背後にある主なアイデアですと。

もう1つのことは、シャードのサイズは、交差できない物理的限界によって制限されていることです。この制限は、多くの要素に依存します。その中で、ヒープの量と物理メモリの総量が異なります。 2GBのヒープと50GBのディスク容量がある場合、インデックスに50GBのデータをインデックスすることはできません。これは動作しないか、非常に遅く不安定になります。

=>したがって、ディスクスペースは、あなたのシャードをサイジングするための主なドライバではないはずです。十分なディスク容量が必要条件ですが、十分なディスクスペースがない場合は、look at the RAM and the heapをESノードに割り当てる必要があります。