持续高并发写入pd与leader同步数据出错

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】
【概述】场景+问题概述 持续高并发的写入导致无法同步pd和leader之间的数据集群停止
【背景】做过哪些操作
【现象】业务和数据库现象
【业务影响】
【TiDB 版本】4.0
【附件】

  1. TiUP Cluster Display 信息

  2. TiUP Cluster Edit Config 信息

  3. TiDB- Overview 监控

  • 对应模块日志(包含问题前后1小时日志)
2 个赞

ji集群报错信息

3 个赞

写入数据大概在六亿左右报错之后集群停止,同时查看源码是rpc通信问题不知道和时钟漂移有关系没

2 个赞

请描述一下你的环境,以及集群状态,还有对应的配置信息

另外高并发的场景也可以描述一下

2 个赞

3个节点 (每个节点都有tikv pd),节点1 cpu: 61482 mem: 256G nvme: 4T P34YTR-04T0U-ST; 节点2:cpu: 41102 mem: 128G nvme: 3T INTEL SSDPE2KE032T8;节点3:cpu: 4110*2 mem: 256G nvme: 3T INTEL SSDPE2KE032T8 这是环境配置信息上面配置提到的nvme都是挂给tikv和pd的

3 个赞

混合部署?上个集群状态图,描述下网络配置?

高并发的场景也可以描述一下,比如client 的配置

1 个赞

./bin-prefix/go-ycsb load s3 -P workloads/workloada -p s3.bucket=test133 -p s3.accessKeyId=FG5xjUkSQeyTfygH -p s3.secretKey=Gvu81QrwIc7Y3kiHbg6PhWZhIEIHXo -p s3.dataLength=0B -p recordcount=10000000000 -p operationcount=10000000000 -p s3.endpoint=s3.tikv.com -p randomkey=false --threads=4000 --silence=false 并发场景就是过s3 写100w数据 写入tikv的是元数据

2 个赞

并发是4000 2000并发也试过 也会出这个问题

1 个赞

大约写入6亿文件后pd就会报那个错 导致后面的请求写不进去

1 个赞

客户端是集群外的一个单独的物理机 cpu:4110*2 mem: 128G 客户端使用的压测工具是go-ycsb

1 个赞

这个场景不合理吧?
S3 是aws 的服务,tikv 是你内部的服务
一个是远端,一个是内部,不同的网络环境,怎么去判断高并发的压点?(网络延迟? 网络带宽? 还是S3的性能? 或者是 tikv的?)

有监控可以帮助你判断么?

1 个赞

抱歉给您造成了误解,这里说的s3是一个自研的s3网关,每个节点同时部署了tikv/pd/及这个s3网关,所有的api请求通过负载均衡平均地打到s3网关上(也就是说每个节点承受1/3的总并发压力),再由s3网关分别将元数据写入tikv集群,数据写入后端存储池;客户端及tikv集群都是配置的同一网段IP,未对管理网、业务网做区分;并发线程数做过调整,但是无论是4000并发还是2000并发均是当元数据量达到6亿左右,pd出现报错([ERROR] [client.go:172] [“region sync with leader meet error”] [error="[PD:grpc:ErrGRPCRecv]rpc error: code = Canceled desc = context canceled"])后集群则不能继续写入,请帮忙分析一下

2 个赞

收到,从这个日志上的错误来分析,基本上可以判断是 PD 的网络断开了
(无法访问 10.0.42.15 这个IP 节点)

PD 配置有几个节点? tikv 有几个节点呢?

如果是压测,最好按照官方文档上的 3 节点来配置

1 个赞

我看你们说的 pd的并发数量和元数据的信息,感觉应该到了pd的瓶颈了。
你可以看看 5.3的特性 “ 优化 PD 时间戳处理流程

1 个赞

现在有什么优化嘛主要是想着在这套环境测试100亿写入测试

首先配置是否合理呢?

100亿,每个记录有多大呢? 需要多少 Region 存放?
然后极限并发量有多大?需要多少leader来支持?
一共需要 多少 tikv 来支持?

这些都需要一些估算,基于这个估算压测才会 【预期】 和 【实际】 结果的对比

2 个赞

你好我们写入的数据大概是700字节一条记录,每个记录我们的数据基本都差不多就随机的改动了下。我们的环境配置是3pd3tikv的部署,按照官方的推荐,我们的配置明显是比官网推荐的强的。你看我们可以有那个文档去测算下最佳的压力以便调整部署呢?

好的,pd的瓶颈是都会抱high clock drift嘛这个触发的机制和成因可以解释下吗?你的推荐我们也去看了

并且尝试过给3各节点pd与tikv分别挂载不同的nvme,同样是当写入数据大约6亿时出现此问题,压测过程中看到挂载给pd的nvme压力实际很小;这个【预期】值应当如何计算呢

而且这两个特性都是5.3引入的4.0的版本好像没有对应的优化指标