系统CPU过高,导致系统GC频繁,会引发一系列问题,如何定位原因呢?---以跑批洗数据为例
1. 第一步 top 查看cpu,如图
java 进程号 106618
2. top -Hp 106618 查看该进程下所有的线程情况
3. 把线程ID转为16进制
printf "%x" 107622
16进制转10进制 printf "%d" 0x1a466
4. 把堆栈信息输出到文件中
jstack 106618 >> 2020072101.txt
5. 在堆栈信息中查找该16进制线程号,分析具体代码情况