2017-02-28 12 views
1

11ノードのElasticsearchクラスタがあります。これらのうち5つはデータノードであり、もう1つはクライアントノードであり、そこからドキュメントを追加および取得します。Elasticsearchクラスタの1つのノードに永続的にオーバーロードされる

私は標準的な弾性検索構成を使用しています。各インデックスには5つの断片とレプリカがあります。クラスタでは、私は55のインデックスと約150GBのデータを丸めています。

クラスタが非常に遅いです。 Kopfプラグインでは、各ノードの統計を見ることができます。そこでは、1つのデータノード(マスタではない)が永久に過負荷になっていることがわかります。ヒープ、ディスク、CPUは大丈夫ですが、負荷はほとんど毎回100%です。私は気づいたことは、すべてのシャードがプライマリシャードであるのに対し、他のすべてのデータノードはプライマリシャードとレプリカの両方を持っていることです。そのノードをシャットダウンしてからもう一度オンにすると、別のデータノードで同じ問題が発生します。

私はなぜ、どのようにこの問題を解決するのか分かりません。私はクライアントノードとマスターノードが均等に要求を分配すると考えましたか?常に1つのデータノードに過負荷がかかるのはなぜですか?

答えて

0

次の設定を試してみてください。

cluster.routing.rebalance.enable

破片の特定の種類のリバランスを有効または無効にします。

all - (default) Allows shard balancing for all kinds of shards. 
    primaries - Allows shard balancing only for primary shards. 
    replicas - Allows shard balancing only for replica shards. 
    none - No shard balancing of any kind are allowed for any indices. 

cluster.routing.allocation .allow_rebalance

sha目のリバランスが許可されています

always - Always allow rebalancing. 
    indices_primaries_active - Only when all primaries in the cluster are allocated. 
    indices_all_active - (default) Only when all shards (primaries and replicas) in the cluster are allocated. 

はcluster.routing.allocation.cluster_concurrent_rebalance

クラスタが広い許可されているどのように多くの同時シャードリバランス制御することができます。

Defaults to 2 

必要な設定を適用するサンプルカール:

curl -XPUT <elasticsearchserver>:9200/_cluster/settings -d '{ 
    "transient" : { 
    "cluster.routing.rebalance.enable" : "all" 
    } 
} 

あなたの設定を再起動しても持続したい場合は、persistenttransientを置き換えることができます。

+0

すべてのノードでelasticsearch.ymlファイルにこの設定を追加する必要がありますか? – CPA

+0

これを 'PUT/_cluster/settings'エンドポイント経由でオンラインで行うことができます –

関連する問題