美文网首页
shard数调优

shard数调优

作者: 水欣 | 来源:发表于2018-03-05 11:58 被阅读0次

摘要

当创建一个索引的时候,我们经常会面对一个问题:要为索引分配多少个shard?多少个replica?对于这个问题,仍然没有明确的统一答案。

Index 需要多少个Shard?

总体上说,当我们节点数和Shard数相等时,ES集群的性能可以达到最优。即,对于一个3节点集群,我们为每个集群节点分配一个Shard,总共3个Shard。但是由于ES的不可变性的限制,系统无法对Shard进行重新拆分分配,除非重新索引这个文件集合。所以,当我们需要增加更多节点的时候,又希望Shardd能利用到增加节点带来的系统性能提升时,我们就不得不进行重新索引,由于重新索引开销巨大,这是我们不希望看到的。
如果需要重新建立索引,将会是一个巨大的开销,为了支持未来可能的水平扩展,我们会为集群分配比node数更多的shard数,也就是说每个节点会有多个Shard。
如果单个node分配多个shard,就会引入另外一些列的性能问题,我们知道对于任意一次完整的搜索,ES会分别对每个Shard进行查询,最后进行汇总。当节点数和shard数是一对一的时候,所有的查询可以并行运行。但是,对于具有多个shard的节点,如果磁盘是15000RPM或SSD,可能会相对较快,但是也会存在等待响应的问题,所以通常不推荐一个节点超过2个shard。
3节点6 shard,即每个节点2 shard,这可以使我们在未来轻松的横向扩展到6 个节点,应对许多极端的场景。

replicas

Replica也是Shard,与shard不同的是,replica只会参与读操作,同时也能提高集群的可用性。对于Replica来说,它的主要作用就是提高集群错误恢复的能力,所以replica的数目与shard数目以及node的数目相关,与shard不同的是,replica的数目可以在集群建立之后变更,代价小,所以相比shard的数目而言,没有那么重要。

相关文章

  • shard数调优

    摘要 当创建一个索引的时候,我们经常会面对一个问题:要为索引分配多少个shard?多少个replica?对于这个问...

  • Kafka调优

    一、调优吞吐量 broker参数 增加num.replica.fetchers,不要超过CPU核数 调优gc,避免...

  • 用户画像5:开发性能及作业调度

    本章主要总结开发性能调优及作业调度相关的产品知识,性能调优主要是减少性能消耗和提高ETL作业时间,常见的调优就会数...

  • JVM调优

    1 调优层次 性能调优包含多个层次,比如:架构调优、代码调优、JVM调优、数据库调优、操作系统调优等。架构调优和代...

  • Twitter 工程师谈 JVM 调优

    一. 调优需要关注的几个方面 内存调优 CPU 使用调优 锁竞争调优 I/O 调优 二. Twitter 最大的敌...

  • Spark性能优化-开发调优

    Spark性能优化分为四个方面: 1、开发调优2、资源调优3、数据倾斜调优4、shuffle调优 1. 开发调优 ...

  • Spark性能优化-资源调优

    Spark性能优化分为四个方面: 1、开发调优2、资源调优3、数据倾斜调优4、shuffle调优 资源调优 num...

  • Spark性能优化-数据倾斜调优

    Spark性能优化分为四个方面: 1、开发调优2、资源调优3、数据倾斜调优4、shuffle调优 数据倾斜调优 1...

  • Hive SQL mapper数调优

    众所周知,Hive会将SQL翻译转换成对应的MAPREDUCE任务,通过执行MAPREDUCE任务来获得最终想要的...

  • JVM-GC调优

    零、本文纲要 一、 GC调优基本思路二、 新生代内存调优三、 老年代内存调优四、 GC调优案例 官方GC调优指南[...

网友评论

      本文标题:shard数调优

      本文链接:https://www.haomeiwen.com/subject/avocfftx.html