Files
2026-04-30 11:19:46 +08:00

3.5 KiB

CPU使用率过高告警处理方案

告警名称

  • 告警名: HighCPUUsage
  • 告警级别: 严重
  • 触发条件: CPU使用率持续5分钟超过80%

问题描述

当服务器或容器的CPU使用率持续超过80%时,可能导致:

  • 应用响应变慢
  • 请求超时增加
  • 系统负载过高
  • 可能触发雪崩效应

排查步骤

步骤1: 获取当前时间

工具: get_current_time 目的: 确定告警发生的时间范围,用于后续日志查询

步骤2: 查询系统日志

工具: query_logs 参数要求:

  • 地域: ap-guangzhou (广州)
  • 日志主题: system-metrics
  • 时间范围: 最近30分钟
  • 查询条件: level:ERROR OR cpu_usage:>80

查询示例:

地域: ap-guangzhou
日志主题: system-metrics
时间范围: 2024-01-20 14:00:00 到 2024-01-20 14:30:00
查询语句: cpu_usage > 80 AND service_name:*

步骤3: 分析CPU消耗进程

查看日志中的进程信息,重点关注:

  • 进程名称和PID
  • CPU占用百分比
  • 进程启动时间
  • 进程所属服务

步骤4: 查询应用日志

工具: query_logs 参数要求:

  • 地域: ap-guangzhou
  • 日志主题: application-logs
  • 时间范围: 与告警时间一致
  • 查询条件: level:ERROR OR level:WARN

常见原因分析

原因1: 死循环或无限递归

特征:

  • 单个进程CPU占用接近100%
  • 应用日志中有大量重复的错误堆栈
  • 内存使用也可能同步增长

处理方案:

  1. 立即重启受影响的服务实例
  2. 查看应用日志定位代码问题
  3. 回滚到上一个稳定版本
  4. 通知开发团队修复代码bug

原因2: 流量突增

特征:

  • 多个进程CPU使用率均匀升高
  • 请求量明显增加
  • 响应时间变长但无明显错误

处理方案:

  1. 检查是否有营销活动或突发流量
  2. 启动自动扩容机制
  3. 如果是恶意流量,启用限流策略
  4. 监控扩容后的CPU使用率

原因3: 定时任务重叠执行

特征:

  • CPU使用率周期性升高
  • 特定时间点出现
  • 日志中有定时任务执行记录

处理方案:

  1. 检查定时任务配置
  2. 调整任务执行时间,避免重叠
  3. 优化任务执行逻辑
  4. 增加任务执行互斥锁

原因4: 数据库查询慢

特征:

  • 应用CPU高,但实际业务逻辑简单
  • 日志中有慢查询记录
  • 数据库连接池占用高

处理方案:

  1. 查询慢SQL日志
  2. 优化SQL语句或添加索引
  3. 检查是否有全表扫描
  4. 考虑增加缓存层

紧急处理措施

立即操作(5分钟内)

  1. 扩容: 如果是流量问题,立即增加实例数量
  2. 限流: 如果怀疑恶意流量,启用限流规则
  3. 重启: 如果是单个实例问题,重启该实例

短期措施(30分钟内)

  1. 分析日志找出根本原因
  2. 如果是代码问题,准备回滚
  3. 如果是配置问题,调整配置
  4. 持续监控CPU使用率变化

长期优化

  1. 代码性能优化
  2. 增加监控告警阈值
  3. 完善自动扩缩容策略
  4. 定期进行压力测试

验证步骤

  1. 确认CPU使用率降到正常水平(<60%)
  2. 检查应用响应时间恢复正常
  3. 确认无新的错误日志产生
  4. 观察30分钟确保问题不再复现

相关告警

  • HighMemoryUsage: 内存使用率过高
  • HighLoadAverage: 系统负载过高
  • SlowResponse: 响应时间过长

联系方式