在使用阿里云Elasticsearch之前,您需要首先评估阿里云Elasticsearch的资源容量。本文档根据实际测试结果和用户使用经验,提供了相对通用的评估方法,供您参考。
适用磁盘类型
本文档主要适用于:存储类型为SSD云盘的阿里云Elasticsearch实例。

磁盘容量评估
阿里云Elasticsearch集群的磁盘空间大小影响因素包括:
- 副本数量。至少1个副本。
- 索引开销。通常比源数据大10%(_all等未计算)。
- 操作系统预留。操作系统默认会保留5%的文件系统供用户处理关键流程、系统恢复以及磁盘碎片等。
- ES内部开销。段合并、日志等内部操作,预留20%。
- 安全阈值。通常至少预留15%的安全阈值。
根据以上因素得到:最小磁盘总大小 = 源数据大小 * 3.4。
磁盘总大小 = 源数据 * (1 + 副本数量) * (1 + 索引开销) / (1 - 操作系统预留空间) / (1 - ES内部开销) / (1 - 安全阈值)
= 源数据 * (1 + 副本数量) * 1.7
= 源数据 * 3.4
注意
- 对于_all这项参数,如果在业务使用上没有必要,通常建议您禁止或者有选择性地添加。
- 对于需要开启这个参数的索引,其开销也会随之增大。根据测试结果和使用经验,建议您在上述评估的基础上额外增加一半的空间,即:
磁盘总大小 = 源数据 * (1 + 副本数) * 1.7 * (1 + 0.5) = 源数据 * 5.1
集群规格评估
阿里云Elasticsearch的单机规格可能会对集群的能力有所限制,因此在使用Elasticsearch服务前,首先需要对集群规格进行评估,并根据评估结果进行扩容、升配等操作。本文档根据测试结果和使用经验给出如下建议。
- 集群最大节点数:
集群最大节点数 = 单节点CPU * 5
。 - 单节点最大承载的数据量:使用场景不同,单节点最大承载的数据量也会不同,具体如下。
- 数据加速、查询聚合等场景:
单节点最大数据量 = 单节点Mem(G) * 10
。 - 日志写入、离线分析等场景:
单节点最大数据量 = 单节点Mem(G) * 50
。 - 通常情况:
单节点最大数据量 = 单节点Mem(G) * 30
。
- 数据加速、查询聚合等场景:
规格 | 最大节点数 | 单节点最大磁盘(查询) | 单节点最大磁盘(日志) | 单节点最大磁盘(通常) |
---|---|---|---|---|
2C 4G | 10 | 40 GB | 200 GB | 100 GB |
2C 8G | 10 | 80 GB | 400 GB | 200 GB |
4C 16G | 20 | 160 GB | 800 GB | 512 GB |
8C 32G | 40 | 320 GB | 1.5 TB | 1 TB |
16C 64G | 50 | 640 GB | 2 TB | 2 TB |
shard评估
shard大小和个数是影响Elasticsearch集群稳定性和性能的重要因素之一。Elasticsearch集群中任何一个索引都需要有一个合理的shard规划(默认为5个)。
- 建议在小规格节点下单shard大小不要超过30GB。更高规格的节点单shard大小不要超过50GB。
- 对于日志分析场景或者超大索引,建议单shard大小不要超过100GB。
- shard的个数(包括副本)要尽可能匹配节点数,等于节点数,或者是节点数的整数倍。
- 建议单节点上同一索引的shard个数不要超过5个。
说明
- 由于不同用户在数据结构、查询复杂度、数据量大小、性能要求以及数据的变化等诸多方面是不同的,因此本文的评估仅供参考,不一定适用于所有用户。
- 在条件允许的情况下,您可以通过实际的数据和使用场景测试出适合自己的集群资源规划。
- 在进行集群资源规划时,您可以使用阿里云elasticsearch提供的弹性扩容功能,根据情况随时增加磁盘大小、扩容节点个数以及升级节点规格等。
在文档使用中是否遇到以下问题
更多建议
匿名提交