新搭建的tidb8.1写入每秒不到1万,旧的tidb4.0每秒写入2万

【 TiDB 使用环境】生产环境
【 TiDB 版本】8.1
【复现路径】新搭建的tidb8.1集群,1台中控机[普通服务器,千兆带宽],3个pd+tidb [普通服务器,千兆带宽,3台都是40线程,256G内存普通盘],3个tikv服务器【每台服务器上/data ,/data1 分别一个tikv节点,共6个节点,万兆带宽,1台服务是80线程/512g内存,另外2台是48线程/512g内存, /data/和/data1 分别是3T】
【遇到的问题:我有2个集群,一个是20年左右 搭建的4.0,最近刚搭建了一个8.1,想要把4.0的数据,备份并且导入到8.1的版本中,由于有几个大表 有140G左右,然后我让大数据的同事 使用 SeaTunnel 工具从旧的tidb往新的tidb,测试写入数据(140G)的大表,持续了几分钟,每秒写入8k,往旧的tidb写入是每秒2s,也包括往doris写入 也是每秒2s,doris服务器还是普通的服务器呢,求各位大佬 帮忙看看】
【资源配置】以下是我的参数配置
server_configs:
tidb:
log.slow-threshold: 300
performance.txn-entry-size-limit: 12582912
performance.txn-total-size-limit: 1073741824
tikv:
coprocessor.region-max-size: 384MB
coprocessor.region-split-size: 256MB
readpool.coprocessor.use-unified-pool: true
readpool.storage.use-unified-pool: true
readpool.unified.max-thread-count: 20
server.grpc-concurrency: 20
storage.block-cache.capacity: 128G
pd:
replication.location-labels:
- host
schedule.leader-schedule-limit: 4
schedule.region-schedule-limit: 2048
schedule.replica-schedule-limit: 64

其中某一台tikv
tikv_servers:

  • host: 172.16.111.31
    ssh_port: 22
    port: 20160
    status_port: 20180
    deploy_dir: /data/tidb-deploy/tikv-20160
    data_dir: /data/tidb-data/tikv-20160
    log_dir: /data/tidb-deploy/tikv-20160/log
    numa_node: “0”
    config:
    server.labels:
    host: 172.16.111.31
    arch: amd64
    os: linux
  • host: 172.16.111.31
    ssh_port: 22
    port: 20161
    status_port: 20181
    deploy_dir: /data1/tidb-deploy/tikv-20161
    data_dir: /data1/tidb-data/tikv-20161
    log_dir: /data1/tidb-deploy/tikv-20161/log
    numa_node: “1”
    config:
    server.labels:
    host: 172.16.111.31
    arch: amd64
    os: linux





【附件:截图/日志/监控】

才100多g数据不用这么麻烦,直接用dumpling导出,再导入新集群就行很快的。

这个是一张表,整个数据库得有1.1T。所以我想用140g的表 测测写入性能

磁盘系统都是一样的吗?

tidb是3.5t的sata盘,tikv是3t的peie nvme

不是很清楚具体怎么导入的,一般来说导入要速度快,要么就开500个并发同时干活,要么就一个insert语句后面多跟点数据

1 个赞

写入性能你可以用sysbench测,一般tidb需要500个并发以上才能压满,脚本里面就留一个insert

大数据同事 用seatunnel 工具 从旧的tidb4.0 读取,然后写入到新的tidb8.1,每秒写入8000,但是 用seatunnel 这个工具,从tidb4.0读取,写入tidb4.0,每秒写入20000,在用seatunnel 从tidb4.0读取,写入到普通服务器的doris 也是每秒2万。所以我觉得写入性能插入太大了。但是找不到tidb8.1 这个集群哪里有问题

有没有磁盘的监控,对比看下io使用情况,也不知道你用的是单盘还是raid

要导入的文件都在服务器上吗,网络也没有问题吗?
觉得新老版本的数据库,性能应该差不多或者是新的版本稍好一些。

新旧的tidb 都是逻辑卷,2块盘合成了一个3.2T的pcie ssd。大神看下我的参数 有没有问题

seatunnel 从tidb4.0读取,写入到普通服务器的doris 也是每秒2万,这个doris 服务器也是千兆带宽,tidb8.1 的tidb节点也是千兆带宽

能在dashboard看到写入时的慢SQL吗

这个是慢sql

点进去看下时间消耗,和 4.0的对比下

可以再看看其他环境区别

性能指标看看,cpu,还有磁盘延时

我感觉应该是磁盘性能导致的,ssd肯定比sata要快的,建议用相同机器测试,部署不同版本的tidb,分别测试,控制变量法

公司穷啊,tidb舍不得 ssd,只能sata

tikv节点1


tikv节点2

tikv节点3