面试官问:线上CPU飙升,一分钟内要做什么?

41 阅读2分钟

面试官想听的

  • 是否具备线上应急判断能力
  • 是否会抓关键指标
  • 是否能快速分析阻塞、死循环、GC
  • 是否能快速定位线程情况

回答案例

首先我认为CPU飙升通常是两种情况,一类是近期线上变更,业务中存在一些骚操作;一类是机器异常,如果我作为故障处理人,一分钟内最关键的是找到原因和协助人。

  • 如果是只是单机异常,则先禁用该台机器,观测指标是否仍存在异常情况。

  • 如果大面积机器异常,第一时间考虑近期是否有线上变更,如有线上变更,第一时间就是找到协同处理人,协同分工先完成止损操作。

    • 协同人先周知上级,我则立即开启回滚任务,快速扩容部署旧代码后,禁用有问题的线上机器。

    • 然后是定位问题,可以按照以下指标进行排查。

      • QPS是否有上涨,如果有上涨,先找到对应的上游一起处理,必要时进行限流、熔断、日志降级等操作。
      • 查看GC频率,是否Full GC频繁,定位到是否存在内存泄漏、是否存在对象膨胀等问题
      • 查看哪类线程占用CPU,看是死循环还是大量锁等待。
    • 最后就是修复问题,通过hotfix来上线。

面试加分点

  • 找到协同人、周知相关上下游,因为处理故障时,人是在高度紧张的状态下,很容易操作失误,另外在大厂会有很多流程规范,需要协同人为你做这些杂事。
  • 限流、熔断、日志降级等操作,了解如何降低影响。