开发者社区 > 大数据与机器学习 > 检索分析服务 Elasticsearch版 > 正文

大佬们,我想问一下es单节点的查询并发大概能到一个什么量级啊?

我们现在是3台物理机,每个机器上64c,内存128G,布两个节点,每个节点jvm是31.4G左右,存储的数据量在1个T左右,然后index数量大概15个,总分片数在100个分片左右,用别名查询所有的分片,qps只有500左右 这个正常吗?

展开
收起
游客bcfx2q4kttgbm 2022-07-13 17:20:47 3272 0
3 条回答
写回答
取消 提交回答
  • 您好,单节点ES集群的查询并发能力主要取决于以下几个方面:

    1. 节点的CPU和内存资源。CPU核数越多,内存越大,并发能力越强。
    2. 索引设计。合理的主分片数和副本分片数可以提高并发。适当oversizing可以减少分片热点。
    3. 查询类型。过滤、精确匹配等低成本查询并发能力强,复杂查询如大聚合、深分页等并发能力弱。
    4. JVM配置。合理配置内存区域大小,避免GC频繁。
    5. 索引的数据量。数据量越大,查询成本越高,并发能力越弱。
      根据您的情况,3节点64核128G内存,数据1T,15个索引,100分片,的配置来看,单节点最大并发查询量级我觉得在1000~2000左右是合理的。
      如果要提高并发量,可以考虑下面几点:
    6. 加大CPU和内存配置,如使用96核192G内存规格的机器。
    7. 调整索引设计,适当增加主分片数和副本数。
    8. 优化查询,使用 scroll 滚动查询,减少深分页场景。
    9. 调整 JVM ,增加堆内存。
    10. 升级 ES 版本,以利用版本优化。
    11. 分批查询,通过程序减少并发请求量。
    2023-09-20 17:25:28
    赞同 1 展开评论 打赏
  • Elasticsearch的查询并发性能受多个因素的影响,包括硬件配置、索引设计、查询复杂性等。根据您提供的硬件配置,Elasticsearch单节点的查询并发量可能会比较高。但是,QPS(每秒查询数)只有500左右可能表明存在其他因素限制了性能。

    以下是可能影响查询性能的一些因素:

    1. 查询复杂性:如果您的查询非常复杂,包括多个聚合、过滤器和排序等操作,那么查询响应时间可能较长,从而限制了QPS。

    2. 索引设计:索引的结构和映射设置可以影响查询性能。合理的分片、字段索引和映射设置可以提高性能。

    3. 缓存:Elasticsearch有用于缓存查询结果的机制。如果查询的数据在缓存中已经存在,响应时间会更快。缓存的使用情况也可能影响QPS。

    4. 网络延迟:物理机器之间的网络延迟可能会对查询性能产生影响,尤其是在跨节点查询时。

    5. 负载均衡:如果查询分布不均匀,可能会导致某些节点负载较重,从而限制了整体性能。

    6. 数据大小:查询的数据大小和查询的速度之间存在关系。如果查询需要大量数据进行处理,可能会导致性能下降。

    7. 并发设置:Elasticsearch的并发设置也可能影响性能。如果没有充分配置并发设置,可能无法充分利用硬件资源。

    您提到的硬件配置非常强大,理论上应该能够支持更高的QPS。但是,要提高性能,您可能需要仔细检查索引设计、查询复杂性和其他可能的瓶颈,以找出是哪个因素限制了性能。您还可以使用Elasticsearch的监控和性能分析工具来识别性能瓶颈并进行优化。另外,如果可能的话,考虑使用多个节点的集群来分担负载,以提高查询性能。

    2023-09-15 14:55:21
    赞同 1 展开评论 打赏
  • 全栈JAVA领域创作者

    根据你提供的信息,你的 Elasticsearch 集群是一个单节点集群,总共有 3 个物理机,每个机器上有 64 个 CPU 核心,内存 128 GB,每个节点的 JVM 可用内存为 31.4 GB。存储的数据量在 1 个 T 左右,index 数量大概 15 个,总分片数在 100 个分片左右。用别名查询所有的分片,qps 只有 500 左右。
    根据 Elasticsearch 官方文档,单节点集群的查询性能受到单节点的 CPU、内存、硬盘等资源的限制,因此在查询性能上可能会受到一定的影响。此外,查询性能还受到查询语句的复杂度、数据量、索引结构等因素的影响。
    在你的情况下,单节点集群的 qps 只有 500 左右,这可能是因为查询语句的复杂度较高,或者是因为数据量较大,索引结构不够优化等因素导致的。如果你需要提高查询性能,可以考虑以下几种方案:

    增加集群的硬件资源。例如,可以增加更多的 CPU 核心、内存、硬盘等资源,以提高集群的查询性能。
    优化查询语句。例如,可以使用更优化的查询语句,或者使用 Elasticsearch 提供的查询优化器来优化查询语句。
    优化索引结构。例如,可以使用更优化的索引结构,例如使用更多的字段索引、更优化的字段类型等,以提高查询性能。
    分片策略的优化。例如,可以使用更优化的分片策略,例如使用更多的分片、更小的分片大小等,以提高查询性能。
    总之,如果你需要提高 Elasticsearch 集群的查询性能,可以考虑增加集群的硬件资源、优化查询语句、优化索引结构、优化分片策略等方案。

    2023-08-11 07:57:06
    赞同 1 展开评论 打赏

阿里云检索分析服务Elasticsearch版兼容开源ELK功能,免运维全托管,提升企业数据检索与运维分析能力。

热门讨论

热门文章

相关电子书

更多
分布式高并发缓存6.0 立即下载
Cassandra 性能压测及调优实战 立即下载
基于etcd的超大规模生产级弹性键值存储实践与优化 立即下载