Sysbench压测数据报错

使用sysbench压测数据,/usr/local/bin/sysbench --config-file=config oltp_point_select --tables=32 --table-size=100000 prepare 线程数16 系统配置,16核32g 500SSD,每次压测一半就会报错

最大包大小修改了1G,最大连接数修改了3000尝试还是一样报错

排查问题思路:

  1. TiDB 集群配置是否满足要求,做到 TiDB/TiKV 资源隔离部署,TiDB,TiKV 对 CPU 和 Memory 硬件资源要求很高(16c 32GB 单实例);
  2. 从截图现象看应该 sysbench 断开连接,需要确认是 sysbench 断开的连接 ? 还是因为 TiDB 重启或者 TiKV server is busy 导致到断开连接,这里需要通过 TiDB.log 进行排查,检查 TiDB 在 sysbench 报错时间点是否有 “Welcome” 关键字,另外需要检查有没有关键报错 “TiKV server is busy”,如果是这样的,需要从硬件资源负载进行排查;
  3. 纯点查 sysbench 测试,需要关注一下 Grafana 监控的 TiDB server 厘米啊监控情况,例如 QPS,99 duration ,TiKV Error,PD Client 等监控,找到关键的性能瓶颈。

image 是集群配置 2、10:55分又进行了一次压测 tidb没有重启,日志里面全是info和warning

有weicom

检查一下 /var/log/msg 中是否有 TiDB server oom 报错

image

建议使用 3.0.2 或者 2.1.15 进行 sysbench 压测,master 版本不支持压测的。需要确认是不是 TiDB server 在 dmesg 里面是否有 out of memroy 报错 ? 可以 less 或者 vim 进去日志排查一下。

两个tidb之间是主从关系吗?还是,使用sysbench在pingcap官网下载的。因为我压测的数据很小,10万的数据量,32张表,早上9点多,压测了一下,成功了,想把数据压测百万,就一直报错。偶尔也成功过,不知道是怎么回事,监控看各个组件负载也不是很高。

可以发一下 TiDB 的监控,帮你排查一下瓶颈。

从监控看 sysbench 测试没有 select 查询数据,麻烦确认一下 tidb 日志中具体的 slow query 是什么,需要针对 query 进行优化。 Memory Usage 中的确存在 tidb-server 内存掉底的情况,应该是有大的 select 导致的 TiDB Server 内存溢出,触发了 Linux 杀掉 tidb-server 服务的情况。

zabbix监控tidb服务的内存 剩余的还有很多啊,我这个压力测试只是建表插入数据,没有别的query

麻烦上传一下 tidb 和 tikv 的日志,我们看一下具体的报错吧。

发一下 13:50 的 zabbix TiDB 服务的内存使用率截图,另外发一下 13:50 的 tidb 和 tikv 日志的情况。

tidb image

万兆网卡吗 ?

千兆网卡

检查一下网络带宽是不是被占满了 ? TiDB 软硬件配置中万兆网卡是基准配置。

大概找到问题了,尝试将表设置更小,不会出现这个问题,应该是网卡的原因,多谢SUN

如果觉得别人的回答有帮助,可以将其标记为解决方案:white_check_mark:,这样可以帮助其他有同样问题的人快速找到答案

是千兆网卡,大量数据压测,导致网卡成为瓶颈,将数据量降低,再次进行压测,没有报错