如何对ES集群的容量进行规划

如何对ES集群的容量进行规划

一个集群总共需要多少个节点?一个索引需要设置几个分片?规划上需要保持一定的余量,当负载出现波动,节点出现丢失时,还能正常运行。

做容量规划时,一些需要考虑的因素:

  • 机器的软硬件配置
  • 单条文档的大小|文档的总数据量|索引的总数据量((Time base数据保留的时间)副本分片数
  • 文档是如何写入的(Bulk的大小)
  • 文档的复杂度,文档是如何进行读取的(怎么样的查询和聚合)

评估业务的性能需求:

  • 数据吞吐及性能需求
    • 数据写入的吞吐量,每秒要求写入多少数据?
    • 查询的吞吐量?
    • 单条查询可接受的最大返回时间?

了解你的数据

  • 数据的格式和数据的Mapping
  • 实际的查询和聚合长的是什么样的

ES集群常见应用场景:

  • 搜索:固定大小的数据集
    • 搜索的数据集增长相对比较缓慢
  • 日志:基于时间序列的数据
    • 使用ES存放日志与性能指标。数据每天不断写入,增长速度较快
    • 结合Warm Node 做数据的老化处理

硬件配置:

  • 选择合理的硬件,数据节点尽可能使用SSD
  • 搜索等性能要求高的场景,建议SSD
    • 按照1:10的比例配置內存和硬盘
  • 日志类和查询并发低的场景,可以考虑使用机械硬盘存储
    • 按照1:50的比例配置内存和硬盘
  • 单节点数据建议控制在2TB以内,最大不建议超过5TB
  • JVM配置机器內存的一半,JVM內存配置不建议超过32G
  • 不建议在一台服务器上运行多个节点

内存大小要根据Node 需要存储的数据来进行估算

  • 搜索类的比例建议:1:16
  • 日志类:1:48——1:96之间

假设总数据量1T,设置一个副本就是2T总数据量

  • 如果搜索类的项目,每个节点31*16=496 G,加上预留空间。所以每个节点最多400G数据,至少需要5个数据节点
  • 如果是日志类项目,每个节点31*50= 1550 GB,2个数据节点即可

部署方式:

  • 按需选择合理的部署方式
  • 如果需要考虑可靠性高可用,建议部署3台单一的Master节点
  • 如果有复杂的查询和聚合,建议设置Coordinating节点集群扩容
  • 增加Coordinating / Ingest Node

集群扩容:

  • 增加Coordinating / Ingest Node
    • 解决CPU和内存开销的问题
  • 增加数据节点
    • 解决存储的容量的问题
    • 为避免分片分布不均的问题,要提前监控磁盘空间,提前清理数据或增加节点

扩展阅读

如果您希望成为业务架构师或者对业务与技术融合感兴趣可以关注我的专栏
如何成为一名业务架构师——业务架构

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值