1. Overview
本文主要介绍一下Elasticsearch(后文简称ES)做相关基准测试的流程,及分享一些我们做过的一些测试结论。
简要说明下我们使用情况:
宽表的用户画像OLAP分析场景,集群规模200节点,数据量30T左右全热数据,24h更新及查询,总数据量1500亿,日更新200亿。
2. 基准测试
2.1 测试流程
由于 ES 是近乎线性扩展的分布式系统,所以对上述需求可以总结成同一个测试模式:
1. 使用和线上集群相同硬件配置的服务器搭建一个单节点集群。
2. 使用和线上集群相同的映射创建一个 0 副本,1 分片的测试索引。
3. 使用和线上集群相同的数据写入进行压测。
4. 观察写入性能,或者运行查询请求观察搜索聚合性能。
5. 持续压测数小时,使用监控系统记录 eps、requesttime、fielddata cache、GC count、Throughput、latency、Heap used 等关键数据。
测试完成后,根据监控系统数据,确定单分片的性能拐点,或者适合自己预期值的临界点。这个数据,就是一个基准数据。之后的扩容计划,都可以以这个基准单位进行。
2.2 集群拓扑
单数据节点测试环境:
ES集群:
1 data node(内存:31g,SSD)(1台物理机)
1 client node
3 master node
集群测试环境:
ES集群:
12 data node(内存:31g,SSD)(6台物理机)
1 client node
3 master node
集群部署拓扑结构:(master、data、client分离部署,监控集群独立&