【 TiDB 使用环境】生产环境
【 TiDB 版本】v5.4.0
【复现路径】
【遇到的问题:问题现象及影响】在监控里面看到cop高,请问下cop高表示什么?
【资源配置】
【附件:截图/日志/监控】
coprocessor是处理一些计算下推的活,cop高就是这个延迟高。
一般比如说 扫描,limit这些可以下推的。
如果sql没法优化,高就高吧。如果能优化,尽可能减少扫描。
Coprocessor作用是收到请求后,根据请求算子对数据进行过滤聚合,然后返回给 TiDB,提供查询加速的。如果根据业务场景分析后,加速效果不明显可以取消。
v5.0.0 及以上版本默认开启 Coprocessor cache 功能,开启该功能后,TiDB 会在 tidb-server 中缓存算子下推到 tikv-server 计算后的结果,降低读取数据的延时,要关闭 Coprocessor cache 功能,可以修改 tikv-client.copr-cache 的 capacity-mb 配置项为 0.0
响应时间增加:由于 Coprocessor 负载过高,查询请求的处理速度可能变慢,导致用户等待时间变长,响应时间增加。
系统资源消耗增加:Coprocessor 需要占用 CPU、内存等系统资源进行查询处理。当 Coprocessor 负载高时,会增加系统资源的消耗,可能导致整个集群的性能下降。
阻塞其他操作:如果 Coprocessor 负载过高,可能会阻塞其他查询请求的处理,导致其他任务或操作受到影响。
cop是coprocessor的缩写,cop它表示的含义是系统在tikv查询扫描数据的操作,cop高表示的是在tikv扫描数据(键值对)的时间比较久。
至于为什么时间比较久,需要进一步分析是因为扫描的数据量太多,还是tikv存储层的资源使用比较紧张(通常是IO),还是因为有别的大任务在挤兑,需要进一步去排查