JVM 问题排查
关注左边二维码:程序员开发者社区
-
1. Full GC次数过多
-
2. CPU过高
-
3. 不定期出现的接口耗时现象
-
4. 某个线程进入WAITING状态
-
5. 死锁
-
6.内存泄露
处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及Full GC次数过多的问题。当然,这些问题的最终导致的直观现象就是系统运行缓慢,并且有大量的报警。本文主要针对系统运行缓慢这一问题,提供该问题的排查思路,从而定位出问题的代码点,进而提供解决该问题的思路。
对于线上系统突然产生的运行缓慢问题,如果该问题导致线上系统不可用,那么首先需要做的就是,导出jstack和内存信息,然后重启系统,尽快保证系统的可用性。这种情况可能的原因主要有两种:
-
代码中某个位置读取数据量较大,导致系统内存耗尽,从而导致Full GC次数过多,系统缓慢;
-
代码中有比较耗CPU的操作,导致CPU过高,系统运行缓慢;