系统不可用的常见原因

常见原因

分类 具体可能原因
🧮 CPU 计算型负载高 某批量任务、统计任务或导出任务在此时段执行,占满 CPU
🔄 线程池耗尽 / Dubbo 阻塞 某接口执行慢导致请求堆积,线程被占用无法及时释放
💾 数据库慢查询 SQL 查询执行缓慢导致后端线程阻塞,引发连锁反应
📦 GC 频繁 / Full GC JVM 垃圾回收频繁,导致 Stop-the-World 时间过长
🔁 循环调用 / 死循环逻辑 业务逻辑缺陷引发高 CPU 消耗

排查建议

检查项 操作建议
1. top / htop 记录 查看当时 CPU 占用最高的进程/线程(可以结合 pidstat 或 arthas 查看线程堆栈)
2. JVM GC 日志 检查是否存在 Full GC 频繁、单次 GC 耗时长
3. 数据库慢查询日志 检查当时是否有耗时 SQL 超过 5s
4. 系统任务调度 查看当时是否点有定时任务、报表生成、库存同步等批量操作
5. 压测或请求量曲线 对照请求流量曲线,判断是否为突发高并发导致的瓶颈