0

16 ノード (13 データ ノード/3 マスター/24 GB RAM/12 GB ヒープ) の Elastic Search 5.2 クラスターがあります。クエリのパフォーマンス テストを行っており、Elastic クラスターで 1 秒あたり 50 回の検索クエリの呼び出しを行っています。私のクエリは次のようになります -

{
    "query": {
        "bool": {
            "must": [
                {
                    "term": {
                        "cust_id": "AC-90-464690064500"
                    }
                },
                {
                    "range": {
                        "yy_mo_no": {
                            "gt": 201701,
                            "lte": 201710
                        }
                    }
                }
            ]
        }
    }
}

私のインデックスマッピングは次のようなものです -

cust_id      Keyword
smry_amt     Long
yy_mo_no     Integer    // doc_values enabled
mkt_id       Keyword
. . .
. . .
currency_cd  Keyword   // Total 10 field with 8 Keyword type

インデックスには 2 億件のレコードが含まれており、各 cust_id には数百件のレコードが存在する場合があります。インデックスには 2 つのレプリカがあります。レコード サイズが 100 バイト未満です。

パフォーマンス テストを 10 分間実行すると、クエリの応答とパフォーマンスが非常に遅くなるようです。Kibana 監視タブでもう少し詳細に調査すると、多くのガベージ コレクション アクティビティが発生しているようです (下の画像を参照してください)。

範囲検索操作中のガベージ コレクション

頭の中にいくつかの疑問点があります。範囲クエリについていくつか調査しましたが、私のようなシナリオで GC アクティビティを引き起こす原因についてはあまり見つかりませんでした。私はメモリ使用量と GC アクティビティについても調査していますが、Elastic ドキュメントのほとんどは、インデックス作成中は若い世代の GC が正常であり、検索アクティビティは主に OS が維持するファイル システム キャッシュを使用すると述べています。そのため、上のグラフでは、検索がファイル システム キャッシュを使用していたため、ヒープはあまり使用されていません。

そう -

  1. ここでガベージ コレクションが発生する原因は何ですか?
  2. グラフは、ヒープがまだ Elastic Search で使用可能であり、使用済みヒープが使用可能に比べてまだ非常に少ないことを示しています。では、何が GC をトリガーしているのでしょうか?
  3. クエリの種類によって、破棄される内部データ構造が作成され、GC が発生していますか?
  4. CPU スパイクは、GCアクティビティが原因である可能性があります。
  5. Elastic Search 5.5 より前のバージョンで範囲クエリを実行する効率的な方法は他にありますか?
  6. クエリをプロファイリングすると、Elastic がTermQueryを実行しており、後者のBooleanQueryが最もコストがかかることがわかります。

ここで何が起こっているのですか?

前もって感謝します、

  • SGSI。
4

1 に答える 1

0

正しい答えはインデックスの設定によって異なりますが、docValues を有効にして整数型を使用していると思います。このデータ構造は、集計と並べ替えをサポートすることになっていますが、範囲クエリはサポートしていません。正しいデータ型はrangeです。

DocValues の場合、elastic/lucene は範囲クエリに一致するためにすべてのドキュメント (つまり、フル スキャン) を反復処理します。これには、DV 列からすべての値を読み取ってデコードする必要があります。オペレーティング システム。

于 2017-10-23T20:50:54.857 に答える