开启了共享弹性存储功能的阿里云Elasticsearch(ES)6.7版本内核增强版实例(新购实例不再支持开启,存量用户可以继续使用),提供了存储计算分离架构,能够提升写入性能,降低存储成本。
架构
开启共享弹性存储功能的6.7版本内核增强版实例,以共享弹性存储CPFS(Cloud Paralleled File System)和读写分离架构为基础的Elasticsearch数据模型。
该架构具备如下优势:
索引分片一写多读,数据只保存一份。
依赖云存储多副本,保证数据可靠性。
IO fence机制,保证数据一致性。
内存物理复制,降低主备可见性延迟(毫秒可见)。
优势
写入性能提升100%,避免了副本写入的开销。
存储成本倍数级降低,数据只保存一份。
副本秒级快速扩缩容和故障迁移,轻松应对高峰流量。
适用场景
日志分析场景
具有写入吞吐量高、数据存储量大的特点,开启共享弹性存储功能的ES实例能成倍提升ES写入性能,可以降低一倍的存储成本。
高并发查询场景
对稳定性要求高,当高峰流量远高于低峰时,会有弹性扩缩副本的需求。开启共享弹性存储功能的ES实例不仅能快速扩缩副本,还能在故障时快速恢复和迁移索引数据。
性能测试
数据集为官方esrally提供的nyc_taxis。
16核配置:
开启共享弹性存储功能的6.7版本内核增强版实例:5*数据节点(16核64G)+ 3*主节点(2核8G)+ 10TSSD CPFS。
原生Elasticsearch 6.7.0版本:5*数据节点(16核64G)+ 3*主节点(2核8G)+ 2000GB SSD。
场景 | 副本 | 原生Elasticsearch 6.7.0(doc/s) | 阿里云Elasticsearch 6.7.0(doc/s) | 阿里云Elasticsearch主副同步延时(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版本内核增强版实例:5*数据节点(8核32G)+ 3*主节点(2核8G)+ 10TSSD CPFS。
原生Elasticsearch 6.7.0版本:5*数据节点(8核32G)+ 3*主节点(2核8G)+ 2000GB SSD。
场景 | 副本 | 原生Elasticsearch 6.7.0(doc/s) | 阿里云Elasticsearch 6.7.0(doc/s) | 阿里云Elasticsearch主副同步延时(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% |
以上测试在不同场景下分别调整了副本数,测试不同副本数对原生Elasticsearch 6.7.0和开启共享弹性存储功能的阿里云ES 6.7版本内核增强版实例写入性能的影响。本测试过程中主分片的改变对写入性能没有影响,故在测试过程中没有体现主分片。
以上测试通过
index.translog.durability
参数,设置translog同步和异步请求状态,详情请参见官方Translog文档。
性能测试结论:
单副本情况下,开启共享弹性存储功能的实例在16核配置下,性能相对原生提升了126%。8核配置下,相对原生提升了93%。
开启共享弹性存储功能的实例相比原生Elasticasearch,在8核和16核下的性能提升,随副本数呈线性增长。
开启共享弹性存储功能的实例增加副本的开销非常小,在纯写入场景下的主备延迟均小于1s。
开启共享弹性存储功能的6.7版本内核增强版实例支持2 TB~100 TB的热数据存储总容量。 如果需要更大热数据存储空间的集群,请在控制台中。