阿里云Elasticsearch(简称ES)支持通用商业版和日志增强版两种类型的实例。通用商业版阿里云ES实例包含了阿里云ES的全部高级特性,日志增强版共享弹性存储实例在全部高级特性的基础上,优化和增加了内核及插件,可以提供更好的性能、更高的稳定性和更低的成本。本文介绍日志增强版共享弹性存储实例的相关内容。

架构

阿里云日志增强版共享弹性存储实例,是阿里云ES团队基于开源ES 6.7.0版本设计的,以共享弹性存储CPFS(Cloud Paralleled File System)和读写分离架构为基础的Elasticsearch数据模型。

增强版实例架构
该架构具备如下优势:
  • 索引分片一写多读,数据只保存一份。
  • 依赖云存储多副本,保证数据可靠性。
  • IO fence机制,保证数据一致性。
  • 内存物理复制,降低主备可见性延迟(毫秒可见)。

优势

  • 写入性能提升100%,避免了副本写入的开销。
  • 存储成本倍数级降低,数据只保存一份。
  • 副本秒级快速扩缩容和故障迁移,轻松应对高峰流量。

适用场景

  • 日志分析场景

    具有写入吞吐量高、数据存储量大的特点,使用日志增强版共享弹性存储实例能成倍提升写入性能,降低了一倍的存储成本。

  • 高并发查询场景

    对稳定性要求高,当高峰流量远高于低峰时,会有弹性扩缩副本的需求。使用日志增强版共享弹性存储实例不仅能快速扩缩副本,还能在故障时快速恢复和迁移索引数据。

规格选择

目前阿里云日志增强版共享弹性存储实例支持2 TB~100 TB的热数据存储总容量,实例规格支持2核及以上规格,建议搭配3~10个实例。
说明 如果需要更大热数据存储空间的集群,请在控制台中提交工单。
热数据存储总容量

性能测试

数据集为官方esrally提供的nyc_taxis

16核配置:
  • 阿里云日志增强版共享弹性存储实例 6.7.0:5*数据节点(16核64G)+ 3*主节点(2核8G)+ 10TSSD CPFS。
  • 原生ES 6.7.0:5*数据节点(16核64G)+ 3*主节点(2核8G)+ 2000GB SSD。
场景 副本 原生ES 6.7.0(doc/s) 阿里云ES 6.7.0(doc/s) 阿里云ES主副同步延时(ms) 性能对比
translog异步 1 265358 600044 476 226%
2 185366 594015 600 320%
4 103815 585316 854 564%
translog同步 1 177570 414562 286 223%
2 114547 414278 308 362%
4 69204 392661 610 567%
8核配置:
  • 阿里云日志增强版共享弹性存储实例 6.7.0:5*数据节点(8核32G)+ 3*主节点(2核8G)+ 10TSSD CPFS。
  • 原生ES 6.7.0:5*数据节点(8核32G)+ 3*主节点(2核8G)+ 2000GB SSD。
场景 副本 原生ES 6.7.0(doc/s) 阿里云ES 6.7.0(doc/s) 阿里云ES主副同步延时(ms) 性能对比
translog异步 1 168554 324747 277 193%
2 118957 317801 534 267%
4 71125 326974 744 460%
translog同步 1 118500 242234 193 204%
2 81681 246673 339 302%
4 47886 239752 555 500%
说明
  • 以上测试在不同场景下分别调整了副本数,测试不同副本数对原生ES 6.7.0和阿里云ES 6.7.0写入性能的影响。本测试过程中主分片的改变对写入性能没有影响,故在测试过程中没有体现主分片。
  • 以上测试通过index.translog.durability参数,设置translog同步和异步请求状态,详情请参见官方Translog文档。
性能测试结论:
  • 单副本情况下,阿里云日志增强版共享弹性存储实例在16核配置下,性能相对原生提升了126%。8核配置下,相对原生提升了93%。
  • 阿里云日志增强版共享弹性存储实例相比原生,在8核和16核下的性能提升,随副本数成线性增长。
  • 阿里云日志增强版共享弹性存储实例增加副本的开销非常小,在纯写入场景下的主备延迟均小于1s。