CockroachCloud Serverless集群Request Units随机飙升如何排查解决?
CockroachDB Serverless RU消耗异常飙升排查方案
基础问题排查
- 核对自动后台任务执行记录:统计信息自动收集作业是最常见的无业务请求时RU(Request Units,请求单元)飙升原因,CockroachDB为了优化查询性能会定期全表扫描更新统计信息,该操作消耗的RU会被计入集群总消耗。你可以执行
SHOW AUTOMATIC JOBS查询近期运行的自动作业,对比作业执行时间和RU峰值时间是否匹配。 - 排查高消耗SQL语句:即便业务SQL执行总量没有上涨,也可能存在单条语句因为数据量增长、索引失效等问题,单次RU消耗大幅上涨的情况。执行
SELECT * FROM crdb_internal.statement_statistics ORDER BY total_ru_consumed DESC LIMIT 10即可查看近期RU消耗最高的10条SQL,确认是否存在未加索引的全表扫描语句。 - 检查会话连接状态:应用端连接泄漏会导致大量空闲会话长期维持,会话心跳、状态同步等后台操作累计起来也会产生额外RU消耗。执行
SHOW SESSIONS查看当前活跃会话数,和业务正常运行的预期会话数对比即可确认是否存在连接泄漏。
优化调整方案
- 若峰值由统计信息自动收集导致,可关闭自动收集,调整为业务低峰期手动更新:执行
ALTER TABLE [你的表名] SET (sql_stats_automatic_collection_enabled = false)禁用自动收集,低峰期执行ANALYZE [你的表名]手动更新统计信息即可。 - 给高消耗SQL添加匹配的索引,避免全表扫描,可直接降低单条语句的RU消耗。
- 应用端配置数据库连接池,限制最大连接数,设置闲置连接超时自动回收规则,消除连接泄漏带来的额外消耗。
内容的提问来源于stack exchange,提问作者Neofox
相关产品推荐
相关产品推荐

