TiKV-rust client频繁出现gRPC error: RpcFailure: 4-DEADLINE_EXCEEDED Deadline Exceeded

【 TiDB 使用环境】测试环境
【 TiDB 版本】v5.4.2
【遇到的问题】 使用tikv-rust-client访问tikv的集群读写数据,使用事务接口,时不时会出现一段时间超时
【复现路径】做过哪些操作出现的问题
就是读写tikv
【问题现象及影响】
一段时间会出现发到tikv的请求报gRPC error: RpcFailure: 4-DEADLINE_EXCEEDED Deadline Exceeded

【附件】

请提供各个组件的 version 信息,如 cdc/tikv,可通过执行 cdc version/tikv-server --version 获取。

tikv v5.4.2
tikv集群有3个tikv节点和3个pd节点,没有tidb节点,没有监控
机器配置是8c16g,tikv配置了resource_control.memory_limit 为8g

请问在这种超时可能的原因是什么?是rust-client的问题还是集群的问题?在没有tidb的情况下,是否需要client主动去调用gc的接口?

等大佬回复,学习

事务有默认的最大时限的,在时间范围内未完成操作,就会被Client 处理为 Deadline 了

建议调整

  • 读写的范围,减少事务的处理时间
  • 调整事务的最大的时长,可能会导致其他的问题(比如内存溢出)

谢谢回复
我调整了grpc的超时时间为3s,会存在请求3s不能处理完吗?
另外请问,在没有TiDB实例的情况下,PD会主动调用TiKV的GC吗?还是说需要我通过tikv的client主动调用GC?

gc是tidb发起的,tikv执行,跟pd没关系,pd与mvcc机制没有一点关系。

学习案例, :+1:

请求是否能处理完,需要参考数据的处理方式和量级了,这个只能你自己把控了

没有TiDB 的节点实例,默认是不会发起GC 的,最简单的方式追加这样一个节点,就行了 :star_struck:

明白,谢谢,确实追加一个TiDB的节点最简单