上云无忧 > 文档中心 > 百度智能云Elasticsearch - 集群资源评估
Elasticsearch
百度智能云Elasticsearch - 集群资源评估

文档简介:
使用百度智能云Elasticsearch前,需要优先结合业务需求和所存数据,评估集群所需的资源容量,包括磁盘容量、单机规格、shard大小和数量等。评估方式如下:
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

使用百度智能云Elasticsearch前,需要优先结合业务需求和所存数据,评估集群所需的资源容量,包括磁盘容量、单机规格、shard大小和数量等。评估方式如下:

节点数量评估

建议至少选择3个节点,保证ES集群具有较高的节点故障容错能力和更好的可用性。

磁盘评估

磁盘类型选择

SSD云磁盘:适合对性能要求高的场景,具有高IO和高吞吐,适合数据响应度较高的在线分析和搜索场景。核心业务系统、大型线上查询业务建议选择SSD云磁盘。

高性能云磁盘:性能比SSD云磁盘低,价格相对低廉。适合线下测试、大规模冷数据存储分析等对性能要求不敏感的场景。

磁盘容量评估

用户考虑磁盘空间时主要考虑以下几方面:

  • 影响ES磁盘空间大小的因素包括:

    • 副本分片数量:副本可以增加数据的可靠性和查询并发量,建议副本分片数量至少设置为1( number_of_replicas=1)。
    • 索引数据膨胀开销:除原始数据外,ES 需要存储索引、列存数据等,通常比源数据大10%-50%(_all参数等未计算)。
    • 内部其他开销:用于 segment 合并、ES Translog、日志等内部操作,预留20%。
    • 安全阈值:通常至少预留30%的安全阈值。

因此,数据保存在 ES 中实际数据量大概为:

实际数据量 = 源数据 * (1 + 副本数量) * (1 + 数据膨胀) * (1 + 内部其他开销)
          ≈ 源数据 * (1 + 副本数量) * 1.4

计算副本数量和安全阈值预留空间后,建议申请的存储容量为:

存储容量 = 源数据 * (1 + 副本数量) * 1.4 * (1 + 预留空间)
          ≈ 源数据 * 3.6
  • 索引数据膨胀具体开销可以使用“mapper-size”插件测试,使用方式:创建索引mapping时设置“_size:{"enable":true}”。
  • _all参数默认禁用,如果业务上没有特殊需求,建议无需开启。
  • 开启_all参数,磁盘容量的开销也会增大,在评估磁盘空间时需要相应增加。

单机规格评估

单机规格的大小会影响百度智能云Elasticsearch集群性能。建议参考以下几点来评估集群单机规格。

  • 如果需要使用NLP中文分词或向量检索插件,建议单节点内存在8G以上。
  • 使用场景不同,单节点磁盘最大容量也会不同。Elasticsearch实例能够容载的数据量与JVM的堆内存大小有关,一般JVM的堆内存会使用50%左右用于处理数据,建议单节点磁盘最大容量按照JVM内存来评估,建议比例如下:
场景 说明 单节点磁盘最大容量
搜索场景 大量查询聚合、数据计算的业务场景 JVM的堆内存(G)* 0.5 * 50
日志场景 大量日志写入、离线分析的业务场景 JVM的堆内存(G)* 0.5 * 100

除了小内存机型外,通常情况下BES将JVM的堆内存设置为节点内存的一半,最大不超过30G。集群规格参考示例如下:

规格名称 CPU(核) 内存(GB) 单节点磁盘最大容量
bes.g3.c2m8 2 8 搜索场景:100 GB
日志场景:200 GB
bes.g3.c4m16 4 16 搜索场景:200 GB
日志场景:500 GB
bes.g3.c8m32 8 32 搜索场景:500 GB
日志场景:1 TB
bes.g3.c16m64 16 64 搜索场景:1 TB
日志场景:2 TB

shard 相关评估

在进⾏shard规划前,用户需要考虑:

  • 存量数据和增量数据的量级
  • 数据的写入TPS和查询QPS
  • 集群规模和单节点规格

基于以上问题,对shard规划提供了一些建议。

  • 主分片数目在创建索引后不可动态更改,所以在创建索引之前,建议进行合理进行shard分配。
  • 通常业务场景下建议单个shard大小保持在10-30GB,日志场景可以保持在20-50GB。分片不宜过大或过小:过大可能使 ES 的故障恢复速度变慢、查询性能降低;过小可能导致非常多的分片,分片越多,ES性能开销也越大,从而导致读写性能差、内存不足等问题。
  • 建议单节点上的shard数⽬建议控制在500个以下,7.x版本的实例默认的单节点shard的上限为1000个(官⽅不建议调整),如果需要单节点shard数量较大,建议调整shard规划或扩容节点来调整单节点的shard数量。
  • 当数据量和写入量较大时,降低 ES 压力,建议选择多主分片单副本分片;当数据量较小,且写入量也比较小时,建议使用单主分片多副本分片或者单主分片单副本分片。
  • 建议单个节点上同一索引的shard个数不要超5个。
  • 建议shard的个数(包括副本)要尽可能等于数据节点数,或者是数据节点数的整数倍,保证分片可以在各个节点均匀分布。
相似文档
  • 前提条件: 已创建百度智能云账号。创建账号参考百度云账号注册流程。 功能入口: 进入百度智能云首页。 在搜索框中输入”Elasticsearch“,点击进入百度智能云 Elasticsearch 产品首页。
  • Elasticsearch集群搭建好之后,用户可以通过Kibana访问集群,也可以通过curl命令访问集群,然后进行数据的导入或查询。在使用Elasticsearch服务前,用户需要注意以下几点:
  • 前提条件: 开通百度智能云Elasticsearch服务(参考创建集群)且可访问Elasticsearch集群(参考访问Elasticsearch服务)后,可以通过附赠的kibana节点访问Elasticsearch集群,然后可以创建索引、导入数据和搜索数据。
  • 1、登录百度智能云并选择Elasticsearch服务 如果您还没有百度智能云的账号,请首先通过这个地址进行注册 http://bce.baidu.com/index.html 然后选择Elasticsearch服务。
  • 北京 bj; 保定 bd; 苏州 su; 广州 gz; 香港 hkg; 金融云武汉专区 fwh; 新加坡 sin。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部