Hannibal
(Xiang Hannibal)
1
为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【TiDB 版本】
v4.0.0
pd 4u 8G
db 16u 64G
kv 16U 64G
flash 32u 128G
【问题描述】
TiDB写入非常慢,是单机版mysql的6倍多。
TIDB10个节点,标准的3331,TiKV是ssd,腾讯云的ssd,用了腾讯云的负载均衡。
单机版mysql也是腾讯云的ssd
同样是5301条数据,mysql 14s,tiDB是1.5分钟。很夸张。
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。
Hannibal
(Xiang Hannibal)
6
就这个配置,TiDB的正常写入速度是多少,或者你们有压测报告吗?各项指标看了没啥异常。感觉TiDB的写入是不是就是这个效率,这么低,
https://docs.pingcap.com/zh/tidb/stable/benchmark-sysbench-v4-vs-v3#测试方案
这是官方的 sysbench 性能压测报告。
TiDB 是一个分布式数据库,追求的是水平扩展能力,MySQL 是单机数据库,如果对于单机 MySQL 可以搞定的场景,其实没有必要上 TiDB 。
Hannibal
(Xiang Hannibal)
8
单机版已经快到瓶颈了。各项指标都到顶峰了,需要一个分布式架构的数据库支撑,后续可扩展,而且单机的查询性能不行。
导出一下 Overview 、TiDB 、PD 、TiKV-Details 面板写入慢时间段的监控看下
导出监控方式:https://metricstool.pingcap.com/
Hannibal
(Xiang Hannibal)
10
Hannibal
(Xiang Hannibal)
11
应用场景中update和upsert的比例较高,问题的截图是一个upsert的任务。
看监控的数据库 duration 不高,系统资源使用率也不是很高,所以数据库没什么压力,可以考虑增加并发写入来加快数据写入。
TiDB 写入的时候,涉及到 TiDB 与 PD 之间的网络交互,TiDB 与 TIKV 之间的网络交互,整个写入流程环节会比 MySQL 多,耗时也会更长。
leeray
(Lileiaab)
16
dba-kit
(张天师)
17
按照我的使用经验,MySQL数据挪到TiDB后,尤其是OLTP服务,最好是使用TiDB 5.X,开启聚簇索引重新设计主键使数据尽可能分散。这样写入和查询性能都会比较高效
关注一下。
表结构是咋样的, 可以分享一下吗?
还有你这个图片是啥啥工具的输出, 为啥 tidb 的input size 高这么多?
刚好差距差不多 7 倍, 耗时也差不多 7 倍。
Hannibal
(Xiang Hannibal)
19
就是spark的监控界面。表结构是一样的。你说的大小这块没注意。表结构不大方便分享。我看看这个大小吧,不知道为啥输入这么大。应该是一样的才对。
这道题我不会
(Lizhengyang@PingCAP)
20
建议升级集群至 v5.x 版本,v4.0.0 是早期的 4.x 版本,在性能和稳定性上都有所不足,bug 也相对较多。