vm-storage在新metric占整体1%情况下的写入性能测试
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!
根据正式环境实际的数据统计,全新的metric占整体的metric数据不到1%。
于是压测客户端每次发送1000条time series数据,990条曾经出现过的metric, 10条全新的metric。
测试在这个量级下,vm-storage的性能表现。
1.基础信息
- CPU 1核
- 内存 8GB
- 本地磁盘(应该是SATA盘)
- metric的平均长度:745字节
- vm-storage版本:v1.78.0-cluster
- 压测方法:使用remote write协议写入完全不同的metric数据,每次发送1000条(990条旧的metric, 10条全新的metric),每核100个并发,一共10核。
- vm-insert 6 实例,共24核,资源充足
- vm-insert的关键参数如下:
-maxConcurrentInserts=默认值
:默认每个核四个并发。-sortLabels
: 开启label的排序。-insert.maxQueueDuration=3s
: 客户端请求在队列里的最大等待时间。-dropSamplesOnOverload
: 在vm-storage变慢后,立即丢弃数据。
2.vm-storage性能表现
- CPU占用:0.88核~0.94核 (相当于CPU资源已经到瓶颈了)
- 内存:4.71GB, 占58.9%
- 网络入流量:2.94mb/s
- 磁盘读:3.28MB,最高延迟 124ms
- 磁盘写:6.18MB,最高延迟 150ms
- 新的metric的占比 1%(2049条/s), slow insert的2460条/s , tsid cache的miss率 1%
- 每秒写入的新metric数量:2460/s
- 每秒总的time series写入量:24.6万/s
- 新metric与索引数量的倍数关系:25.4 (平均每条metric创建将近25条索引)
- vm-insert端:
- 请求量:26.3万/s
- 丢弃量:2.29万/s
3.总结
- 当1%的metric是全新的时候,总体写入性能 24.6万/s,其中新metric写入性能 2460/s
- CPU是主要瓶颈