Solr 7.5.0 と docValues に関するパフォーマンス問題

トピック作成者:ks-solruserml-bot (2024/09/22 22:19 投稿)
6
OpenOpen

(The bot translated the original post https://lists.apache.org/thread/h6ko2tsgwfjohw237xvj20r2httc244v into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)

こんにちは、

私たちは Solr を検索システムに使用しており、複数のマシン上でドキュメントがコアにインデックスされています。時間の経過とともに、あるマシンのインデックスが 30GB から 60GB、そして現在は 133GB という非常に大きなサイズに成長しています。他のマシンは 80GB 程度で推移しており、さらに他のマシンではまだ 30GB 未満です。ドキュメントの配置は手動で管理しており、SolrCloud は使用していません。

インデックスには DocValues フィールドがあり、このフィールドに対するファセットクエリが、約 130GB のインデックスを持つ大きなサーバーマシンでは、ほぼ毎回、最初のクエリが 10 秒ほどかかります。サーバーは 1 分ごとにコミットしており、RAM に十分な容量を確保しています。130GB のインデックスを持つマシンには 256GB の RAM があり、セグメントは常にメモリ内に存在しています。

それにもかかわらず、1 分後に行われる各クエリでは、インデックスサイズが約 130GB の大きなシャードで 10 秒、80GB のシャードで 6 秒、30GB 未満のシャードでは 4 秒以下の時間がかかります。

このレイテンシをどのように最適化し、改善することができるでしょうか? DocValuesFormat=Direct の使用、facet.threads の数の増加、ヒープサイズの増加などを試しましたが、大きなシャードでのファセットクエリのパフォーマンスを 2 秒未満にするための他の方法があれば教えてください。

よろしくお願いします。
Arun

返信投稿者:ks-solruserml-bot (2024/09/22 22:19 投稿)

ハードウェアをアップグレードして、IOPS を増やしてみてください。

Deepak

返信投稿者:ks-solruserml-bot (2024/09/22 22:19 投稿)

こんにちは、Arunさん。

なぜ検索リスナーで新しい検索者をウォームアップしないのですか?

--
よろしくお願いします、
Mikhail Khludnev

返信投稿者:ks-solruserml-bot (2024/09/22 22:20 投稿)

クエリに debug=true を渡して、どのフェーズ(クエリかファセット)がより時間をかけているか確認できますか?これにより、最適化すべき対象を誤って追いかけないようにするためです。

-Rahul

返信投稿者:ks-solruserml-bot (2024/09/22 22:20 投稿)

@Rahul Surendran、確かにファセットで時間がかかっています:

"process": {
  "time": 1560,
  "query": {
    "time": 10
    },
  "facet": {
    "time": 1545
    },
返信投稿者:ks-solruserml-bot (2024/09/22 22:20 投稿)

みなさん、アドバイスありがとうございます!

@Mikhail
ご提案を試してみたところ、効果がありました。特定のファセットクエリに関して、以前のようなコールドブートの長いクエリ時間には直面しなくなりました。追加の質問があります:ファセットクエリを三つまたは四つ追加することで、検索者にパフォーマンスへの影響がありますか?メモリ使用量を確認しましたが、この特定の自動ウォームアップクエリからのスパイクはありませんでした。docValuesは一般的にメモリを多く消費しますか?セグメント自体と比較して、メモリフットプリントが小さいと思っていました。

よろしくお願いします。
Arun

返信投稿者:ks-solruserml-bot (2024/09/22 22:20 投稿)

ファセットクエリを三つまたは四つ追加することで、検索者にパフォーマンスへの影響がありますか?

影響すると思いますが、誰にもわかりませんね。

docValuesは一般的にメモリを多く消費しますか?

まったく問題ありません。docValuesはメモリマップされている(そうであるべきです)ので、ヒープメモリを多く消費することはありません。ただし、GlobalOrdinalsマップは遅延的に構築されるため、ある程度のヒープメモリを使用します。

--
よろしくお願いします、
Mikhail Khludnev

トピックへ返信するには、ログインが必要です。

KandaSearch

Copyright © 2006-2024 RONDHUIT Co, Ltd. All Rights Reserved.

投稿の削除

この投稿を削除します。よろしいですか?