TDSQL Boundless CPU 利用率过高

当 TDSQL Boundless 实例 CPU 利用率过高时,通常会出现以下现象。

相关产品
TDSQL Boundless 产品页,含版本规格、价格与购买入口。

一、现象描述

·实例监控中 CPU 利用率或 CPU 最大使用率持续处于高位,或在特定时段出现明显尖峰。

·慢查询数增加,部分 SQL 执行耗时明显上升。

·SQL 平均执行时间、P95 SQL 执行时间、P99 SQL 执行时间升高。

·当前打开连接数、汇总活跃线程数或节点维度活跃线程数增多。

·在多节点实例中,可能仅个别节点 CPU 明显高于其他节点。

·严重时,业务访问可能出现响应抖动、请求堆积或超时。

若 CPU 利用率长期过高,可能影响实例性能和业务稳定性,建议及时排查。

二、可能原因

TDSQL Boundless 实例 CPU 利用率过高,常见原因如下:

三、慢 SQL 或低效 SQL

慢 SQL 是 CPU 利用率升高的常见原因之一,通常表现为查询未命中合适索引,或 SQL 存在大范围扫描、排序、聚合、回表等高开销操作。在这类场景下,通常会同时看到慢查询数、SQL 平均执行时间、P95 SQL 执行时间、P99 SQL 执行时间上升。

四、业务请求量突增

当业务高峰流量突增,或批量任务、抽数任务、迁移任务在短时间内集中执行时,实例 CPU 可能快速升高。此时常伴随总 QPS、读 QPS、写 QPS、每秒处理的事务数抬升。

五、热点访问或负载分布不均

TDSQL Boundless 为分布式数据库。如果请求长期集中在少量热点数据、热点分片或少数节点上,可能导致个别节点负载明显偏高,出现单节点 CPU 打满的情况。此时通常会看到节点维度 CPU 利用率、活跃线程数、总 QPS、数据盘 IO 时耗等指标明显高于其他节点。

六、元数据访问频繁

频繁执行 SHOW TABLES、SHOW TABLES LIKE 或大量查询表结构、系统对象信息等元数据操作时,也可能带来较高 CPU 开销。尤其是在单个数据库表数量较多时,影响会更加明显。

七、内存或 I/O 压力放大 CPU 问题

在部分场景下,CPU 升高并不是首要原因,而是由资源瓶颈间接引起。例如内存利用率偏高、读 IOPS 或写 IOPS 持续高位、数据盘 IO 最大时耗升高等,都会导致 SQL 执行变慢,进而放大 CPU 压力。

八、步骤1: 查看实例监控

登录 TDSQL Boundless 控制台,进入 TDSQL Boundless 实例监控页面,优先确认 CPU 异常的范围和持续时间。

建议重点关注以下几类监控指标:

类型 指标
资源类指标 用于判断是否存在资源瓶颈或节点负载异常,建议重点关注:CPU 利用率CPU 最大使用率内存利用率内存最大使用率数据盘最大使用率磁盘利用率读 IOPS写 IOPS总 IOPS数据盘 IO 最大时耗
连接类指标 用于判断是否存在连接堆积或线程压力,建议重点关注:当前打开连接数最大连接数汇总活跃线程数连接数利用率
访问类指标 用于判断是否存在流量突增、慢 SQL 增多或 SQL 执行效率下降,建议重点关注:慢查询数总 QPS读 QPS写 QPS每秒处理的事务数SQL 失败数SQL 平均执行时间P95 SQL 执行时间P99 SQL 执行时间

如果实例为多节点部署,建议同时查看节点维度监控,确认是否仅有个别节点异常。若仅单节点 CPU 明显偏高,通常需要重点排查热点访问或负载倾斜问题。

九、步骤2:通过 DBbrain 查看异常诊断

TDSQL Boundless 支持通过 DBbrain 进行异常诊断和慢 SQL 分析。

1. 登录 DBbrain 控制台。

2. 在左侧导航中选择诊断优化。

3. 在页面顶部选择数据库类型为 TDSQL Boundless,并选择目标实例。

4. 单击异常诊断页签,查看近3小时内触发的诊断事件。

5. 单击具体事件,查看事件详情、现场描述、智能分析和优化建议。

如果实例存在慢 SQL,建议同时查看慢 SQL 分析页面,重点确认异常时间段内是否存在高耗时、高频或扫描行数偏大的 SQL。详细操作请参见 异常诊断。

十、步骤3:排查慢 SQL 和低效 SQL

若 CPU 利用率升高伴随慢查询数增多或 SQL 平均执行时间上升,建议优先排查 SQL 执行效率。

可执行以下语句查看当前会话:

SHOW FULL PROCESSLIST;

对于可疑 SQL,建议查看执行计划:

EXPLAIN SELECT …;

重点关注以下情况:

·查询是否命中合适索引

·是否存在全表扫描

·是否存在大量回表

·是否存在高成本排序、聚合、临时表操作

·异常 SQL 的执行时间是否与监控中的异常时间段一致

如果确认是索引设计不合理或 SQL 写法低效导致,建议根据实际查询条件进行索引和 SQL 优化。

十一、步骤4:排查热点访问

若实例为多节点部署,且仅个别节点 CPU 明显偏高,建议进一步排查是否存在热点访问问题。

建议重点确认以下信息:

·某类 SQL 是否长期访问同一业务 key

·某个节点是否在高峰时段持续 CPU 偏高

·异常节点的总 QPS、活跃线程数、读 IOPS、写 IOPS、数据盘 IO 时耗是否同步升高

·异常节点的连接和线程指标是否明显高于其他节点

若确认存在热点访问,建议从以下方向处理:

·优化相关 SQL,降低单次查询开销

·优化业务模型,避免请求长期集中在单一热点数据

·通过扩容分散负载

十二、步骤5:排查业务流量和后台任务

若 CPU 异常与业务高峰、定时任务、批处理、迁移或巡检时间一致,建议进一步排查是否存在流量突增或任务集中执行的情况。

建议重点关注:

·总 QPS

·读 QPS

·写 QPS

·每秒处理的事务数

·SQL 失败数

如果上述指标在异常时间段明显升高,则可能是业务请求量突增、任务集中执行或应用重试放大导致。建议通过错峰执行任务、控制并发度、应用侧限流等方式缓解。

十三、步骤6:检查是否存在内存或 I/O 压力

若 CPU 升高的同时,还伴随以下现象,则说明问题可能与资源瓶颈有关:

·内存利用率 持续偏高

·读 IOPS、写 IOPS、总 IOPS 持续高位

·数据盘 IO 最大时耗 或节点维度数据盘 IO 时耗明显升高

·SQL 平均执行时间、P95 SQL 执行时间、P99 SQL 执行时间整体变长

·节点维度出现是否发生 OOM

此时建议综合评估当前实例规格是否满足业务负载需求,并结合实际情况考虑升配或扩容。

十四、步骤7:必要时进行实例扩容

如果经过排查确认 CPU 高是由当前规格不足导致,建议结合实际业务情况进行扩容。

·若实例整体 CPU 长期处于高位,可考虑升配。详细请参见 调整实例配置。

·若仅个别节点负载明显偏高,可优先考虑扩容以分散热点负载。

·若同时存在内存和 I/O 压力,建议综合评估后统一扩容。

注意:说明:

赞 (0)
上一篇 4天前
下一篇 4天前