[英]Elasticsearch Latency
我正在使用 Elasticsearch 的 MultiSearch API 一次為我的一個端點發出多個搜索請求。 我的理解是這些請求是並行完成的,但是我的端點的延遲隨着我通過 API (<50) 發出的搜索請求的數量而增加。 我有兩個問題:
為了提供更全面的答案,最好了解您的集群設置。
這些請求確實是並行完成的,但您的集群仍然有其局限性。
我認為可能發生的情況是您可能沒有足夠的搜索線程來並行處理那么多搜索,並且您的搜索線程池開始排隊。
https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-threadpool.html
因此,例如,如果您發出一個 MultiSearch 查詢,假設有 10 個搜索查詢,其中每個查詢將命中 15 個分片,這意味着整個查詢總共需要 150 個搜索線程。 如果有其他搜索正在運行並且集群沒有可用的搜索線程 - 它們將開始排隊,如果隊列變得太大,最終可能會拒絕。
你能為這個做什么?
number_of_shards
分片和索引大小。 減少number_of_shards
將需要更少的搜索線程。 在number_of_shards
和索引大小及其文檔計數之間找到平衡點。 如果文檔少於 5M,則將所有內容保存在單個 shard 中,否則,嘗試使用 3M-5M 文檔的 shard,例如 23M 文檔的索引可以使用 5 或 6 個 shard。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.