Elastic Searchでクエリの検索速度を向上させる方法は?
ホストはElasticSearchのAWSです。2TBのデータが6つのノードと30のインデックスにそれぞれ10個のシャードで保存されています。すべてのインデックスでの単純な検索は非常に遅く、数分かかります。
どこで間違えたの?それは正常ですか、設定が悪いですか、データが多すぎますか?
私のクラスター設定:
"search": {
"max_queue_size": "1000",
"queue_size": "1000",
"size": "4",
"auto_queue_frame_size": "2000",
"target_response_time": "1s",
"min_queue_size": "1000"
},
マイノード設定:
"os": {
"refresh_interval_in_millis": 1000,
"name": "Linux",
"pretty_name": "CentOS Linux 7 (Core)",
"arch": "amd64",
"version": "4.15.0-1039-aws",
"available_processors": 32,
"allocated_processors": 2
}
ありがとうございました!
回答
3 ElasticsearchNinja
情報が非常に少ない非常に幅広い質問です。次のような詳細情報を提供してください。
- 持っているデータの量と各シャードのサイズ。
- 平均所要時間のサンプル検索クエリ。
- データノードのヒープサイズと
allocated_processors
、使用可能なプロセッサ(32)よりも非常に少ない(2)理由 - 検索クエリでフェッチしているドキュメントの数、つまりサイズパラメータ。
- 検索呼び出しがない場合の検索待ち時間
- elasticsearch(ES)の遅いログを検索する
検索パフォーマンスを改善するための10のヒントを参照できます。また、ヒントに記載されているいくつかのパラメーターの値を教えてください。また、クラスターオプティマイザーツールを試して、ESのクラスターとノードの設定を微調整することもできます。
コメントで説明されているように、問題をより効率的にデバッグするには、opsterの検索スローログブログを参照してください。
1 Jaycreation
1)I have 2TB data. Every index has 50GB or more. Each has 10 shards and a replica
それだけです。シャードの目標サイズは約50Gbである必要があります。設定を使用すると、それぞれ約5Gbになります。5シャード以下に縮小し、1セグメントに強制的にマージできます。パフォーマンスは大幅に改善する必要があります。
その後、Optstersが彼のブログで提供している他の良いアドバイスを見てください。それらはすべて関連しています。