* 【TiDB 版本】:V3.0.9
* 【问题描述】:
数据大小有715G ,使用loader 导入一直提示error 9002: TiKV server timeout,帮忙看一下是什么原因导致的?
/usr/local/tidb-enterprise-tools-latest-linux-amd64/bin/loader -t 32 -u root -h 10.1.13.5 -P 4000 -d /data/tidb_dumper/export-20200302-065545
请提供一下 TiKV 的 QPS、CPU(raft store cpu, async apply cpu)、内存、IO 等相关的监控指标
从监控指上看,机器的 IO 有超过 80% 的情况,有瓶颈,再确认一下 raftstore.store-pool-size 配置是多少?
[readpool.storage]
[readpool.coprocessor]
[server] labels = { }
[storage]
[storage.block-cache] capacity = “20GB”
[pd]
##This section will be overwritten by command line parameters
[metric]
[raftstore] raftdb-path = “” sync-log = true
[coprocessor]
[rocksdb] wal-dir = “”
[rocksdb.defaultcf] block-cache-size = “16GB”
[rocksdb.defaultcf.titan]
[rocksdb.lockcf]
[rocksdb.titan]
[rocksdb.writecf] block-cache-size = “6GB”
[raftdb]
[raftdb.defaultcf]
[security] ca-path = “” cert-path = “” key-path = “”
[import]
[pessimistic-txn]
[gc]
store-pool-size、apply-pool-size 的默认值都是 : 2 ,从监控图上来看 raft, apply 还没有到瓶颈,那基上可以判断是 IO 的问题,请问你们采用的磁盘是什么类型的,磁盘的 IOPS 大概是多少?
SSD 磁盘
08:47:08 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
08:47:09 AM dev8-16 1063.00 0.00 463169.00 435.72 68.79 63.34 0.89 94.70
08:47:09 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
08:47:10 AM dev8-16 1102.00 0.00 474871.00 430.92 32.82 30.33 0.88 97.40
08:47:10 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
08:47:11 AM dev8-16 1088.00 0.00 458163.00 421.11 25.10 23.86 0.88 95.40
- 从目前的情况来看磁盘 IO 是瓶颈,看看能否加一点机器
- 从监控来看还有一个问题,磁盘 IO 分布不均,导入的时候集中在某一台,这个是一个问题,你们的数据有规律吗?
机器无法加了。 IO 分布不均匀这个要怎么解决呢?不知道怎么看数据有没有规律,我是通过mydumper 导出来的,然后再loader 导进去
判断没有规律的方法,例如:有没有唯一索引或者主键,先要看看数据有没有规律,才能知道有没有方法
每张表都有主键,有一些大表有做分区,小表没分区。各个表的数据量级别不一样。
loader 支持表级别的并发导入,分散写入热点以及支持对单个大表并发导入,分散写入热点等功能,所有按表拆分,大表拆小表基本上没有什么用处
另外,能确认一下有没有写入热点吗?
没有。我现在只是做全备导入的,之后要做增量同步
写入热点跟全量导入、增量同步估计关系不大,关键还是看数据是否都是有序的,如果有序有很有可能出现