对于一个1.5T大小的表,插入越来越慢

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】

【概述】 场景 + 问题概述
插入tidb越来越慢

【背景】 做过哪些操作

【现象】 业务和数据库现象
之前在三台tikv的情况下, qps也能到1w左右。 现在有5太tikv, qps在5k左右。 而且我看磁盘的ioutil基本上是满的。

【问题】 当前遇到的问题
我的问题:
1)是不是因为表的数据大了, 有什么overhead?让插入速度保持之前的大小?
2)如何来调查这个问题?
【业务影响】

【TiDB 版本】
v5.3.0
【应用软件及版本】

【附件】 相关日志及配置信息

  • TiUP Cluster Display 信息
  • TiUP CLuster Edit config 信息

Found cluster newer version:

The latest version:         v1.8.2
Local installed version:    v1.8.1
Update current component:   tiup update cluster
Update all components:      tiup update --all

Starting component cluster: /home/tidb/.tiup/components/cluster/v1.8.1/tiup-cluster display tidb_prod
Cluster type: tidb
Cluster name: tidb_prod
Cluster version: v5.3.0
Deploy user: tidb
SSH type: builtin
Dashboard URL: http://192.168.0.66:2379/dashboard
ID Role Host Ports OS/Arch Status Data Dir Deploy Dir


192.168.0.44:9093 alertmanager 192.168.0.44 9093/9094 linux/x86_64 Up /home/tidb/tidb-data/alertmanager-9093 /home/tidb/tidb-deploy/alertmanager-9093
116.57.100.238:3000 grafana 116.57.100.238 3000 linux/x86_64 Up - /home/tidb/tidb-deploy/grafana-3000
192.168.0.55:3000 grafana 192.168.0.55 3000 linux/x86_64 Up - /home/tidb/tidb-deploy/grafana-3000
192.168.0.44:2379 pd 192.168.0.44 2379/2380 linux/x86_64 Up /home/tidb/tidb-data/pd-2379 /home/tidb/tidb-deploy/pd-2379
192.168.0.55:2379 pd 192.168.0.55 2379/2380 linux/x86_64 Up|L /home/tidb/tidb-data/pd-2379 /home/tidb/tidb-deploy/pd-2379
192.168.0.66:2379 pd 192.168.0.66 2379/2380 linux/x86_64 Up|UI /home/tidb/tidb-data/pd-2379 /home/tidb/tidb-deploy/pd-2379
192.168.0.77:2379 pd 192.168.0.77 2379/2380 linux/x86_64 Up /home/tidb/tidb-data/pd-2379 /home/tidb/tidb-deploy/pd-2379
192.168.0.88:2379 pd 192.168.0.88 2379/2380 linux/x86_64 Up /home/tidb/tidb-data/pd-2379 /home/tidb/tidb-deploy/pd-2379
192.168.0.44:9090 prometheus 192.168.0.44 9090 linux/x86_64 Up /home/tidb/tidb-data/prometheus-9090 /home/tidb/tidb-deploy/prometheus-9090
192.168.0.44:4000 tidb 192.168.0.44 4000/10080 linux/x86_64 Up - /home/tidb/tidb-deploy/tidb-4000
192.168.0.55:4000 tidb 192.168.0.55 4000/10080 linux/x86_64 Up - /home/tidb/tidb-deploy/tidb-4000
192.168.0.66:4000 tidb 192.168.0.66 4000/10080 linux/x86_64 Up - /home/tidb/tidb-deploy/tidb-4000
192.168.0.77:4000 tidb 192.168.0.77 4000/10080 linux/x86_64 Up - /home/tidb/tidb-deploy/tidb-4000
192.168.0.88:4000 tidb 192.168.0.88 4000/10080 linux/x86_64 Up - /home/tidb/tidb-deploy/tidb-4000
192.168.0.44:20160 tikv 192.168.0.44 20160/20180 linux/x86_64 Up /tidb_ssd_data/tikv-20160 /home/tidb/tidb-deploy/tikv-20160
192.168.0.55:20160 tikv 192.168.0.55 20160/20180 linux/x86_64 Up /tidb_ssd_data/tikv-20160 /home/tidb/tidb-deploy/tikv-20160
192.168.0.66:20160 tikv 192.168.0.66 20160/20180 linux/x86_64 Up /tidb_ssd_data/tikv-20160 /home/tidb/tidb-deploy/tikv-20160
192.168.0.77:20160 tikv 192.168.0.77 20160/20180 linux/x86_64 Up /tidb_ssd_data/tikv-20160 /home/tidb/tidb-deploy/tikv-20160
192.168.0.88:20160 tikv 192.168.0.88 20160/20180 linux/x86_64 Up /tidb_ssd_data/tikv-20160 /home/tidb/tidb-deploy/tikv-20160

监控(https://metricstool.pingcap.com/)

  • TiDB-Overview Grafana监控
  • TiDB Grafana 监控
  • TiKV Grafana 监控
  • PD Grafana 监控
  • 对应模块日志(包含问题前后 1 小时日志)

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

写入慢的因素很多,简单说下思路。

1、硬件限制,网络和IO、CPU等等因素
2、热点问题,有两个因素

  • 1)设计上的缺陷,造成数据热点,可以通过dashboard的热力图查看或者pd-ctl 命令查看
  • 2)设计上理论上没有热点,但是某台tikv主机硬件限制造成的木桶短板理论,影响整体集群的吞吐量,通过tikv主机性能查看

3、tidb组件参数配置的不合理(不适合当前场景)等,比如触发compact、region调度等
4、应用上SQL问题,查询计划不是最优,单个SQL请求时延增加,导致整体QPS下降

2赞

我看你说io打满,想问一下三台和五台的底层磁盘架构是一样的么?

  1. 混布情况下CPU利用率什么样。可考虑不同组件绑不同的Numa
  2. 磁盘类型、raid级别什么样
  3. 插入慢从什么时候开始的,仅这个1.5T表慢吗?
  4. 参考下面,导出overview,tikv detail ,tidb ,pd ,node exporter的监控快照
    https://docs.pingcap.com/zh/tidb/stable/exporting-grafana-snapshots/#将-grafana-监控数据导出成快照
  1. cpu利用率很低。
  2. 磁盘是ssd, raid0
  3. 现在这个表只有这个大数据。 确实我可以另外建立一个表来测试一下。 之后来回复呢。
  4. 我create另外一个表之后来回复你。

都是ssd, raid0。之后加了2台机器,所以从3台变成了5台。