CPU利用率突增排查总结

1 背景

处理CPU突增问题时,首先要对整个系统的整体结构和流量路径做到心中有数。例如流量进入系统要经过负载均衡、网关、服务…

引起高利用率的原因可能多种多样,具体情况需要根据具体位置的警报来进行判断。

2 场景与解决

2.1 单机硬件故障

表现:整个系统链路上各个环节流量均正常。

可能原因:现如今微服务部署,一台物理机上可能划分多个虚拟机器,并分配给不同的业务使用。由于由于单机硬件性能影响,及同宿主机的其它业务影响,导致自身服务部可用。

解决:快速禁用服务,更换机器。通过服务管理中心禁用改机服务,随后替换。

注意事项:这种情况一定是先处理故障,再排查具体影响。保证业务稳定。

2.2 外部流量快速上涨

表现:监控系统上关于消息服务、HTTP、RPC等请求量快速增长。流量较低时,未出现问题,高流量时发生问题。

可能原因

  • 系统业务逻辑存在瓶颈,例如某个环节有加锁处理计算逻辑。低流量时不会产生问题,流量突增后,导致异常。
  • 流量分配不均匀。例如采用同机房路由策略。而在某个机房下服务提供者机器过少,而上游流量又过大。

解决

  • 接口限流,服务扩充,服务重启。
  • 调整服务路由策略。例如关闭同机房优先。
  • 事后压测,复现场景,找出高消耗CPU的任务。

注意事项:如果资源充足的情况,有限使用扩容,这样尽量保证服务可用。其次再考虑限流,同事要评估限流导致的损失是否可控。

2.3 服务内部逻辑缺陷

表现:与2.2原因一致,只是这种逻辑问题在小流量情况下也会导致服务不可用,单机CPU利用率过高。

可能原因:开发时逻辑有问题。

解决

  • 尽快回滚系统。
  • 事后分析,例如java应用结合top、ps、jstack等工具组合分析,或根据监控系统分析。

注意事项:这种问题,在发布时,一定是要灰度发布,并有一个观察期。随后出现问题快速回滚。

3 总结

遇到这种问题,优先要保证服务可用。先不要去考虑原因。快速限流、重启、扩容、甚至混滚系统,随后逐步恢复流量。事后分析场景,解决问题。

在没有自动化平台时,要熟练了解解决这些问题的工具。

附录

[1]https://www.ibm.com/support/knowledgecenter/SSLTBW_2.4.0/com.ibm.zos.v2r4.bpxa500/ps.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值