3.5 KiB
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%
- 应用日志中有大量重复的错误堆栈
- 内存使用也可能同步增长
处理方案:
- 立即重启受影响的服务实例
- 查看应用日志定位代码问题
- 回滚到上一个稳定版本
- 通知开发团队修复代码bug
原因2: 流量突增
特征:
- 多个进程CPU使用率均匀升高
- 请求量明显增加
- 响应时间变长但无明显错误
处理方案:
- 检查是否有营销活动或突发流量
- 启动自动扩容机制
- 如果是恶意流量,启用限流策略
- 监控扩容后的CPU使用率
原因3: 定时任务重叠执行
特征:
- CPU使用率周期性升高
- 特定时间点出现
- 日志中有定时任务执行记录
处理方案:
- 检查定时任务配置
- 调整任务执行时间,避免重叠
- 优化任务执行逻辑
- 增加任务执行互斥锁
原因4: 数据库查询慢
特征:
- 应用CPU高,但实际业务逻辑简单
- 日志中有慢查询记录
- 数据库连接池占用高
处理方案:
- 查询慢SQL日志
- 优化SQL语句或添加索引
- 检查是否有全表扫描
- 考虑增加缓存层
紧急处理措施
立即操作(5分钟内)
- 扩容: 如果是流量问题,立即增加实例数量
- 限流: 如果怀疑恶意流量,启用限流规则
- 重启: 如果是单个实例问题,重启该实例
短期措施(30分钟内)
- 分析日志找出根本原因
- 如果是代码问题,准备回滚
- 如果是配置问题,调整配置
- 持续监控CPU使用率变化
长期优化
- 代码性能优化
- 增加监控告警阈值
- 完善自动扩缩容策略
- 定期进行压力测试
验证步骤
- 确认CPU使用率降到正常水平(<60%)
- 检查应用响应时间恢复正常
- 确认无新的错误日志产生
- 观察30分钟确保问题不再复现
相关告警
HighMemoryUsage: 内存使用率过高HighLoadAverage: 系统负载过高SlowResponse: 响应时间过长
联系方式
- 运维团队: ops-team@company.com
- 开发团队: dev-team@company.com
- 紧急电话: 400-xxx-xxxx