Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
admin commit message 6f740cd Mar 20, 2019
0 contributors

Users who have contributed to this file

82 lines (50 sloc) 3.64 KB

规格容量评估 {#concept_dq4_bmk_zgb .concept}

在使用阿里云ES之前,需要优先评估阿里云ES资源容量。我们根据实际测试结果和用户使用经验,提供了相对通用的评估方法,可以作为参考。

适用磁盘类型 {#section_kms_pfl_zgb .section}

本文档主要适用于购买存储类型为SSD云盘的阿里云ES实例进行参考。

磁盘容量评估 {#section_khy_pfl_zgb .section}

阿里云ES集群磁盘空间大小影响因素:

  • 副本数量,至少1个副本。
  • 索引开销,通常比源数据大10%_all 等未计算)。
  • 操作系统预留,默认操作系统会保留**5%**的文件系统供用户处理关键流程,系统恢复,磁盘碎片等。
  • ES内部开销,段合并,日志等内部操作,预留20%
  • 安全阈值,通常至少预留**15%**的安全阈值。

最小磁盘总大小 = 源数据 * 3.4

磁盘总大小 = 源数据 * (1 + 副本数量) * (1 + 索引开销) / (1 - Linux预留空间) / (1 - ES开销) / (1 - 安全阈值)
= 源数据 * (1 + 副本数量) * 1.7
= 源数据 * 3.4

对于 _all这项参数,如果在业务使用上没有必要,我们通常的建议是禁止或者有选择性的添加。

对于需要开启这个参数的索引,其开销也会随之增大。根据我们的测试结果和使用经验,建议在上述评估的基础上额外增加一半的空间:

磁盘总大小 = 源数据 * (1 + 副本数) * 1.7 * (1 + 0.5) 
= 源数据 * 5.1

集群规格评估 {#section_ksh_qfl_zgb .section}

阿里云ES的单机规格在一定程度上是限制了集群能力的,这里我们根据测试结果和使用经验给出如下建议。

集群最大节点数 = 单节点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评估 {#section_tjp_qfl_zgb .section}

shard大小和个数是影响ES集群稳定性和性能的重要因素之一。ES集群中任何一个索引都需要有一个合理的shard规划,很多情况下都会有一个更好的策略来替换ES默认的5个shard。

  • 建议在小规格节点下单shard大小不要超过30GB。更高规格的节点单shard大小不要超过50GB。
  • 对于日志分析场景或者超大索引,建议单shard大小不要超过100GB。
  • shard的个数(包括副本)要尽可能匹配节点数,等于节点数,或者是节点数的整数倍。
  • 通常我们建议单节点上同一索引的shard个数不要超5个。

说明:

由于不同用户在数据结构,查询复杂度,数据量大小,性能要求,数据的变化等等诸多方面是不同的,所以本文的评估绝不是每一个用户的最佳建议。

在条件允许的情况下,还是希望您可以通过实际的数据和使用场景测试出适合自己的最佳实践。得益于阿里云elasticsearch提供的弹性扩容功能,您可以参考本文的内容做初始规划。在实际使用时根据情况随时增加磁盘大小扩容节点个数升级节点规格

You can’t perform that action at this time.