我来为您整理这些故障排查相关面试题的关键要点: | 问题 | 关键词/关键概念 | | -------------------------- | --------------------------------------------------------------- | | CPU飙高问题排查过程(1)?| top找高CPU进程→top -Hp找线程→printf转16进制→jstack找对应线程→分析堆栈 | | CPU飙高问题排查过程(2)?| perf top热点函数、火焰图分析、Arthas profiler、死循环、频繁GC、锁竞争 | | 数据库CPU被打满排查?| show processlist、慢查询、缺索引、锁等待、统计信息、并发过高、复杂计算 | | 频繁FullGC问题排查?| 内存泄漏、大对象、元空间满、老年代增长快、jstat监控、GC日志分析 | | 频繁FullGC问题排查(2)?| 堆内存设置过小、晋升年龄过小、Survivor区过小、System.gc()调用、并发模式失败 | | | | | OOM问题排查过程?| heap dump分析、MAT工具、找大对象、分析引用链、-XX:+HeapDumpOnOutOfMemoryError | | Arthas统计方法耗时原理?| 字节码增强、ASM框架、方法前后插入计时代码、Instrumentation API、无侵入监控 | | Java进程突然挂了原因?| OOM killer、段错误、kill信号、JVM崩溃、未捕获异常、系统资源耗尽、Native内存泄漏 | | Load飙高问题排查?| vmstat看r/b队列、iostat看IO、top看CPU、D状态进程、上下文切换、线程数过多 | | POI导致内存溢出排查?| 大文件一次性加载、使用SXSSFWorkbook流式、分批处理、调整堆内存、事件模式解析 | | RT飙高问题排查?| 链路追踪、慢SQL、GC日志、线程池满、远程调用超时、锁等待、资源竞争 | | RocketMQ消费堆积排查?| 消费能力不足、消费异常重试、生产速度过快、消费并发数、消息积压监控 | | Sort aborted问题排查?| MySQL临时表空间不足、tmp_table_size、max_heap_table_size、优化SQL避免排序 | | 回表导致慢SQL排查?| 非覆盖索引、SELECT *、添加覆盖索引、explain分析、减少回表次数 | | 如何使用jstack分析死锁?| jstack pid查看线程堆栈、Found deadlock关键字、waiting to lock/locked、循环等待链 | | 如何排查网络问题?| ping延迟丢包、traceroute路由、netstat连接状态、tcpdump抓包、带宽监控、DNS解析 | | 慢SQL问题排查?| slow log、explain执行计划、索引失效、全表扫描、统计信息过期、锁等待 | | 数据倾斜导致频繁FullGC?| 某些节点数据过多、内存压力大、优化分片键、数据预处理、增加内存、调整并行度 | | 数据库死锁问题排查?| show engine innodb status、死锁日志、事务隔离级别、加锁顺序、缩小事务范围 | | 数据库连接池满排查?| 连接泄漏、慢查询占用、池配置过小、监控active/idle、连接超时设置 | | 服务发布第一批负载高?| 预热不足、缓存未建立、连接池未初始化、JIT未优化、预热接口、延迟上线 | | 服务器SSH连不上?| 网络不通、SSH服务挂了、防火墙、CPU/内存满、磁盘满、进程数限制、PAM限制 | | 死循环导致CPU升高?| 是、持续占用CPU时间片、无阻塞一直运行、单核100%、影响其他线程调度 | | 死锁导致CPU升高?| 否、线程阻塞等待、不占用CPU、BLOCKED状态、CPU使用率低、RT增加 | | 运行期ClassNotFoundException?| 类路径问题、jar包冲突、类加载器问题、动态加载失败、jar包损坏、版本不兼容 | 这个表格总结了各种生产环境问题的排查思路和关键技术点。每个问题都需要: **通用排查流程**: 1. **监控指标** - 确认问题现象 2. **日志分析** - 查看错误信息 3. **工具诊断** - 使用专业工具定位 4. **根因分析** - 找到问题本质 5. **解决方案** - 制定修复方案 6. **预防措施** - 避免再次发生 **常用工具集**: - **系统层面**:top、iostat、vmstat、netstat、tcpdump - **JVM层面**:jstack、jmap、jstat、jconsole、Arthas - **数据库**:explain、show processlist、slow log - **分析工具**:MAT、GCViewer、火焰图 # 八股-线上问题排查 ## 面试题 - Arthas统计方法耗时的原理是什么? - CPU飙高问题排查过程(1) - CPU飙高问题排查过程(2) - Java进程突然挂了,可能是什么原因? - Load飙高问题排查过程 - OOM问题排查过程 - POI导致内存溢出排查 - RT飙高问题排查过程 - RocketMQ消费堆积问题排查 - Sort aborted问题排查过程 - 回表导致慢 SQL 问题排查 - 如何使用jstack分析死锁 - 如何排查网络问题? - 慢SQL问题排查 - 数据倾斜导致的频繁FullGC问题排查 - 数据库CPU被打满排查过程 - 数据库死锁问题排查过程 - 数据库连接池满排查过程 - 服务发布分10批,第一批发完后负载很高后面恢复正常,如何处理? - 服务器突然 ssh 连不上了,可能是什么问题? - 死循环会导致CPU使用率升高吗?为什么? - 死锁会导致CPU使用率升高吗?为什么? - 程序运行期发生ClassNotFoundException 可能是什么原因? - 频繁FullGC问题排查(2) - 频繁FullGC问题排查