Java线上故障面试题(含参考答案).docxVIP

  • 1
  • 0
  • 约4.25千字
  • 约 7页
  • 2026-11-16 发布于河北
  • 举报

Java线上故障面试题(含参考答案)

适用岗位:Java后端开发、中间件开发、稳定性负责人;侧重真实线上排查思路,不考察偏门API记忆

一、基础排查类(每题10分,共40分)

1.线上服务突然大量超时,CPU使用率持续100%,你第一步怎么做,排查顺序是什么?

参考答案:

优先保留现场:先不要重启实例,如果是容器环境,先导出jstack、jmap,同时抓服务器侧top、pidstat、vmstat快照;如果业务影响很大,先扩容或者切流量止损,再保留现场。

定位消耗CPU的Java线程:使用top-H-p进程PID找到高占用线程tid,转成十六进制,再用jstackpid匹配线程栈,确认是死循环、密集计算、频繁GC还是锁自旋。

结合GC日志/arthasdashboard查看GC情况:区分是用户代码计算耗CPU,还是GC线程抢占CPU。

核对监控:接口QPS、慢查询、第三方依赖调用量,确认是不是流量突增触发。

复盘根因:常见原因有for循环死循环、正则回溯、大数据量循环处理、序列化反序列化密集运算、频繁创建短命对象引发疯狂YGC。

注意:不要上来直接重启,重启会丢失栈信息,后续很难定位根因;故障优先原则是止损优先,保留现场次之。

2.线上频繁FullGC,老年代持续上涨,OOM不断触发,排查流程和常见原因?

参考答案:

排查顺序:

打开GC日志,确认FullGC是并

文档评论(0)

1亿VIP精品文档

相关文档