TiKV集群YCSB压测,磁盘IO Util利用率80%,CPU和内存等系统资源利用率很低,写入并发量上不去

【概述】
当前使用三台同机房64核、128G、2T NVMe硬盘搭建了TiKV集群,集群信息如下:

单硬盘都使用fio工具压测过,64KB随机写,平均IOPS=21.4k,性能没有问题。

【TiKV 版本】
v6.5.5

【问题】

使用三台高配置机器,分别执行两次下面的YCSB压测命令(总压测并发数=6432=384),无论并发多大,TiKV写入QPS=28.5K ops/s,单磁盘IOPS才3k左右,磁盘IOPS压不上去。

tiup bench ycsb run tikv -p tikv.pd="http://10.104.16.60:2379,http://10.104.16.200:2379,http://10.104.18.60:2379" -p tikv.type="raw" -p recordcount=10000000 -p operationcount=30000000 -p insertproportion=1 --threads 64

同时系统CPU、内存、IO资源闲置,系统资源无法达到瓶颈。

参考过对集群进行优化调优,但是没有什么效果,TiKV配置参数,基本都是系统默认,之前调大过线程数,无效果。

Thread CPU 监控数据。

求助,什么问题导致写入并发量上不去,如何解决??

没装 TiDB?只装 raw kv 吗?

是的,只需要用到TiKV服务,配合JuiceFS要做统一存储平台

tikv间网络延迟呢,看black exporter

可以适当调大下threads ,加到1000试试

NVMe硬盘的 IO Util高似乎不能代表磁盘已经到瓶颈了,加大并发写入线程看看还能提高QPS吗

看相应时间符合预期不,符合预期就加并发,不行多找几台压力机发压

--threads 64 太小。改到 600 试试

并发调到500以上,几十根本压不上去

先排查 tikv 集群的性能情况,看看有无瓶颈点。找到瓶颈点,才方便去优化。

2 个赞

调整压测客户端并发后重新压测,线程并发=1500(调整更大并发,如2000,只会增加延迟,并不会增加写入QPS),压测客户端机器CPU资源使用率低于10%,不存在压测客户端性能问题。

[root@dx-lt-yd-zhejiang-jinhua-5-10-104-4-29 ~]# tiup bench ycsb run tikv -p tikv.pd="http://10.104.16.60:2379,http://10.104.16.200:2379,http://10.104.18.60:2379" -p tikv.type="raw" -p recordcount=10000000 -p operationcount=30000000 -p insertproportion=1 -p readproportion=0 -p updateproportion=0 --threads 500

[root@dx-lt-yd-zhejiang-jinhua-5-10-104-4-30 ~]# tiup bench ycsb run tikv -p tikv.pd="http://10.104.16.60:2379,http://10.104.16.200:2379,http://10.104.18.60:2379" -p tikv.type="raw" -p recordcount=10000000 -p operationcount=30000000 -p insertproportion=1 -p readproportion=0 -p updateproportion=0 --threads 500

[root@dx-lt-yd-zhejiang-jinhua-5-10-104-4-31 ~]# tiup bench ycsb run tikv -p tikv.pd="http://10.104.16.60:2379,http://10.104.16.200:2379,http://10.104.18.60:2379" -p tikv.type="raw" -p recordcount=10000000 -p operationcount=30000000 -p insertproportion=1 -p readproportion=0 -p updateproportion=0 --threads 500

压测数据和之前并发6432=384的QPS基本一致,没有上升,判断不是压测端并发不够的问题。

IO Util 60%左右

hread CPU 监控数据。


压测并发增加到1500后,平均延迟增大到50ms,之前是10ms以内,增大并发后只增加了延迟

调大4倍为1500后,QPS没有变化,写入延迟有增大

从目前的TiKV-Details Thread CPU监控图来看,所有的内部线程数使用率都没有达到设置的瓶颈

能否登陆下dashboard看看,是不是热点写入非常严重

看下 TiDB → query summary ->connection idle duration

我的环境里只有TiKV和PD服务组件

是这个监控图吗

raftstore.raft-max-inflight-msgs: 1024
raftstore.store-max-batch-size: 2048

tikv 这2个参数调大试试。 总感觉你的磁盘有点不太正常,虽说ssd盘不能以io util为主要指标,但才1.5k iops就60%利用率 不应该

按照建议,调整配置参数,重启tikv集群

压测数据没有太大变化