存储空间

公式:

  1. 源数据 * (1 + 副本数量) * (1 + 索引开销) / (1 - Linux 预留空间) / (1 - Amazon ES 开销) = 最小存储要求

源数据 = 1.5tb,配置了一个副本,则:

套入公式1.5 * 2 * 1.1 / 0.95 / 0.8 = 4.3421052631578956 tb

分片(shard)个数

建议是保持每个分片大小在 10–50 GiB

如果要把所有数据放在同一个索引,则需要根据时间的推移数据大小的变化来调整分片。

而分片在索引(index)创建时确定,后期无法更改,只能重建索引。对应的方案是先从合适的少量分片开始,等分片大小大于建议值时,重新计算规划分片数并重建索引。

另外拆分索引有两种拆分方式:

一是按时间拆分,这个需要我们估算在拆分的时间范围内会生成多少数据,按这个数据大小再以单索引的方式计算每个索引的分片数。

第二种是直接按索引大小拆分,这个在确定好每个索引的大小后,计算需要的分片值。需要注意的是,这个也应该按我们数据增长的速度去确定每个索引的大小,增长慢而定得大,则计算出来的分片数大但却长时间保持着较多的小分片。

需要注意的是,分片数应该是数据节点数的N倍,以尽量平衡各数据节点。

节点类型

这个比较难衡量,因为这个可能会因数据的使用(聚合、更新文档或查询的频率与量)

一般而言,每个实例类型的存储限制映射到轻型工作负载可能需要的 CPU 和内存量。

如果是重型使用的,AWS给出一个简单的衡量方案作为一个初始配置:每100G存储对应2C8G的节点配置,
然后再根据实际监控来确定。