gpt4 book ai didi

elasticsearch - 关于查询速度的Elasticsearch分片基础

转载 作者:行者123 更新时间:2023-12-02 23:30:13 27 4
gpt4 key购买 nike

如果这个问题太广泛或模糊,请原谅我的无知。我在笔记本电脑上使用开箱即用设置的Elasticsearch玩,效果很好。

这是一台8核的Macbook,为Elasticsearch提供了6G的堆,它对于大型数据集(刚好超过700万个文档)非常有效。

我热衷于建立一个多节点集群(两台机器),在开始做一些事情之前,我想先获得一些关键点的专家意见。

我了解“每个节点有多少个碎片”是一个非常主观的问题,一个答案并不适合所有情况。

我知道分片有助于将索引分配到多个节点,以便每个节点的存储空间最佳。
但主要是,我想了解分片对查询速度和有效CPU核心利用率的影响。

当出现单个搜索查询时,ES是否会并行向所有分片触发内部子查询,因此ES可以使所有核心保持繁忙(如果分片数量等于核心数量)?

我还能指出一些有用的链接吗?谢谢。

最佳答案

您的理解几乎是正确的。

要理解的基本概念是,对单个分片的一个查询将使用一个线程。一个线程归结为一个核心CPU。如果查询需要接触多个分片,则ES将确保查询涉及的分片。这意味着每个分片将使用一个线程来完成其工作。

分片的大小和查询的复杂性转化为在该线程中花费了多少时间。但是,操作系统不会一直为该线程提供一个CPU内核,调度作业的OS和其他进程会占用一部分CPU内核。

理想情况下,是的,分片数量=核心数量,但是很少有集群使用此设置。主要是那些每秒处理大量并发请求且要求严格响应时间的集群。

关于elasticsearch - 关于查询速度的Elasticsearch分片基础,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37202976/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com