时间:2024-11-08 17:00:13
导读:java web项目运行一段时间后CPU资源占用过高,导致不能用,有频繁GC的情况,怎么确定问题? 代码某个位置有阻塞性的操作,导致该功能调用整体比较耗时,但出现是......
java web项目运行一段时间后CPU资源占用过高,导致不能用,有频繁GC的情况,怎么确定问题?
代码某个位置有阻塞性的操作,导致该功能调用整体比较耗时,但出现是比较随机的; 某个线程由于某种原因而进入WAITING状态,此时该功能整体不可用,但是无法复现; 由于锁使用不当,导致多个线程进入死锁状态,从而导致系统整体比较缓慢。
1. Full GC次数过多
相对来说,这种情况是最容易出现的,尤其是新功能上线时。对于Full GC较多的情况,其主要有如下两个特征:
2. CPU过高 CPU过高可能是系统频繁的进行Full GC,导致系统缓慢。而我们平常也肯能遇到比较耗时的计算,导致CPU过高的情况,此时查看方式其实与上面的非常类似。