使用Elasticsearch官方压测工具ESRally对不同规格的阿里云ES实例进行压力测试和压力测试对比实验,本文对压测中涉及的重要指标和任务进行说明。
背景信息
ESRally是Elasticsearch官方提供的用于对ES集群进行压力测试的工具。压测的详细说明和具体使用方法,请参见Rally官网。
压测指标Metric
表中仅列出部分重要指标供您参考,更多指标说明请根据已有说明进行类推,或参见esrally压测工具使用文档。
延迟(latency):提交一个完整请求所经历的时间,即从提交请求到收到完整响应之间的时间段。包括等待(延迟)时间,即请求在准备好由Elasticsearch提供服务之前等待的时间。
服务时间(service time):Elasticsearch开始处理一个请求到收到返回结果之间的时间段。
错误率:错误响应相对于响应总数的比例。
指标类型 | 指标名称 | 指标说明 |
主分片索引相关指标 | Cumulative indexing time of primary shards | 所有主分片索引累积时间总和。 说明 该时间总和是指多个indexing线程消耗CPU时间的总和,而不是自然时间。例如有M个indexing线程,运行了N分钟,那么此指标的总时间就是:M*N分钟,而不是N分钟。 |
Min cumulative indexing time across primary shards | 跨主分片索引累积时间的最小值。 | |
Median cumulative indexing time across primary shards | 跨主分片索引累积时间的中值。 | |
Max cumulative indexing time across primary shards | 跨主分片索引累积时间的最大值。 | |
Cumulative indexing throttle time of primary shards | 所有主分片索引时被限流的累积时间。 说明 累积时间是指索引被限流时indexing线程消耗的CPU时间总和,而不是自然时间。 | |
Min cumulative indexing throttle time across primary shards | 跨主分片索引时被限流的累积时间的最小值。 | |
Median cumulative indexing throttle time across primary shards | 跨主分片索引时被限流的累积时间的中值。 | |
Max cumulative indexing throttle time across primary shards | 跨主分片索引时被限流的累积时间的最大值。 | |
Cumulative merge time of primary shards | 主分片的累积合并的运行时间,也是指线程消耗CPU的时间总和。 | |
Cumulative merge count of primary shards | 主分片合并的累积次数。 说明 不是所有的分片都会有合并(merge)动作。 | |
Min cumulative merge time across primary shards | 跨主分片索引合并累积时间的最小值。 | |
Median cumulative merge time across primary shards | 跨主分片索引合并累积时间的中值。 | |
Max cumulative merge time across primary shards | 跨主分片索引合并累积时间的最大值。 | |
Cumulative merge throttle time of primary shards | 主分片的累积合并限制时间,也是指线程消耗CPU的时间总和。 | |
Min cumulative merge throttle time across primary shards | 跨主分片索引合并累积的时间最小值,也是指线程消耗CPU的时间总和。 | |
Median cumulative merge throttle time across primary shards | 跨主分片索引合并累积时间的中值,也是指线程消耗CPU的时间总和。 | |
Max cumulative merge throttle time across primary shards | 跨主分片索引合并累积的时间最大值,也是指线程消耗CPU的时间总和。 | |
Cumulative refresh time of primary shards | 主分片累积刷新的时间,也是指线程消耗CPU的时间总和。 | |
Cumulative refresh count of primary shards | 主分片累积刷新的次数。 | |
Min cumulative refresh time across primary shards | 跨主分片索引刷新时间的最小值。 | |
Median cumulative refresh time across primary shards | 跨主分片索引刷新时间的中值。 | |
Max cumulative refresh time across primary shards | 跨主分片索引刷新时间的最大值。 | |
Cumulative flush time of primary shards | 主分片索引事务数据从缓存冲洗到磁盘的累积时间,也是指线程消耗CPU的时间总和。 | |
Cumulative flush count of primary shards | 主分片索引事务数据从缓存冲洗到磁盘的累积次数。 | |
Min cumulative flush time across primary shards | 跨主分片索引,从缓存冲洗到磁盘累积时间的最小值,也是指线程消耗CPU的时间总和。 | |
Median cumulative flush time across primary shards | 跨主分片索引,从缓存冲洗到磁盘累积时间的中值,也是指线程消耗CPU的时间总和。 | |
Max cumulative flush time across primary shards | 跨主分片索引,从缓存冲洗到磁盘累积时间的最大值,也是指线程消耗CPU的时间总和。 | |
Store size | 索引的大小。不包括 translog和副本分片。 | |
Translog size | 传输日志大小。 | |
Heap used for segments | 所有主分片索引的segment数占用heap的量。 | |
Heap used for doc values | 所有主分片索引的文档数占用heap的量。 | |
Heap used for terms | 所有主分片索引的terms因子占用heap的量。 | |
Heap used for norms | 所有主分片索引的norms因子占用heap的量。 | |
Heap used for points | 所有主分片索引的points占用heap的量。 | |
Heap used for stored fields | 所有主分片索引的字段存储使用heap的量。 | |
Segment count | 所有主分片索引的segments数。 | |
垃圾回收器指标 | Total Young Gen GC | 整个集群中年轻代垃圾收集器的总运行时间。 |
Total Old Gen GC | 整个集群中老年代垃圾收集器的总运行时间。 | |
吞吐量相关指标 | Min Throughput | 每个任务的最小吞吐量,即QPS的最小值。 |
Median Throughput | 每个任务的平均吞吐量,即QPS的中值。 | |
Max Throughput | 每个任务的最大吞吐量,即QPS的最大值。 | |
延迟相关指标 | 50th percentile latency | 50%的完整请求所经历的时间。 |
90th percentile latency | 90%的完整请求所经历的时间。 | |
99.9th percentile latency | 99.9%的完整请求所经历的时间。 | |
100th percentile latency | 100%的完整请求所经历的时间。 | |
服务时间相关指标 | 50th percentile service time | 50%的请求所经历的服务时间。 |
90th percentile service time | 90%的请求所经历的服务时间。 | |
99.9th percentile service time | 99.9%的请求所经历的服务时间。 | |
100th percentile service time | 100%的请求所经历的服务时间。 | |
错误率相关指标 | error rate | 索引的每个任务的响应错误率。 |
压测任务Task
您可以从Task维度查看实例的吞吐量、延迟、服务时间、错误率等参数指标。
Operation | 说明 |
index-append | 索引。 |
index-stats | 索引状态。 |
node-stats | 节点状态。 |
default | 默认。 |
term | term查询。 |
phrase | 短语精确查询。 |
country_agg_uncached | agg无缓存。 |
country_agg_cached | agg有缓存。 |
scroll | 滚动。 |
expression | 表达式。 |
painless_static | 静态脚本。 |
painless_dynamic | 动态脚本。 |
large_terms | 大量的term组合查询。 |
large_filtered_terms | 大量的term组合过滤查询。 |
large_prohibited_terms | 大量的term组合禁用查询。 |
相关文档
购买阿里云ES实例,请参见创建阿里云Elasticsearch实例。
评估ES使用规格和容量,请参见规格容量评估。