Java线上故障排查高频面试题(真实落地版+详细答案).docxVIP

  • 0
  • 0
  • 约5.74千字
  • 约 8页
  • 2026-07-27 发布于河北
  • 举报

Java线上故障排查高频面试题(真实落地版+详细答案).docx

Java线上故障排查高频面试题(真实落地版+详细答案)

一、内存故障类(面试最高频)

1、线上出现OOM(内存溢出),你怎么排查?说完整流程

参考答案:

我线上遇到的OOM主要分四种:堆内存溢出、元空间溢出、栈溢出、直接内存溢出,排查按「先止损、后定位、再修复」的流程来。

第一步:紧急止损。先看监控,确认是单实例还是全量实例异常,单实例直接重启节点,摘除流量,保证业务不崩;全量异常先限流降级,保住核心接口。

第二步:获取现场数据,这一步最关键,重启前一定要保留快照。执行两个核心命令:

1、jmap-dump:format=b,file=xxx.hprof进程PID,导出堆快照;

2、jstack-lPIDthread.log,导出线程堆栈。

第三步:初步定位溢出类型。通过服务器日志、JVM参数判断:

-日志提示Javaheapspace:堆OOM,大概率是大对象、内存泄漏、集合未清理;

-日志提示Metaspace:元空间溢出,多是动态生成类、频繁热部署、CGLIB代理过多;

-栈溢出StackOverflow:递归死循环、方法嵌套过深;

-直接内存溢出:NIO、Netty未释放Buffer内存。

第四步:分析快照。用MAT工具打开hprof文件,优先看支配树、泄漏疑点、大对象统计。常见问题:静态集合无限累加对象、ThreadLocal未remove导致内

文档评论(0)

1亿VIP精品文档

相关文档