我来为您整理这些故障排查相关面试题的关键要点:
| 问题 | 关键词/关键概念 |
| -------------------------- | --------------------------------------------------------------- |
| 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问题排查