系统CPU过高,导致系统GC频繁,会引发一系列问题,如何定位原因呢?---以跑批洗数据为例

1. 第一步 top 查看cpu,如图

系统CPU过高,导致系统GC频繁,会引发一系列问题,如何定位原因呢?---以跑批洗数据为例

java 进程号 106618

2. top -Hp 106618 查看该进程下所有的线程情况

系统CPU过高,导致系统GC频繁,会引发一系列问题,如何定位原因呢?---以跑批洗数据为例

3. 把线程ID转为16进制

printf "%x" 107622 系统CPU过高,导致系统GC频繁,会引发一系列问题,如何定位原因呢?---以跑批洗数据为例

16进制转10进制 printf "%d" 0x1a466

4. 把堆栈信息输出到文件中

jstack 106618 >> 2020072101.txt

5. 在堆栈信息中查找该16进制线程号,分析具体代码情况

系统CPU过高,导致系统GC频繁,会引发一系列问题,如何定位原因呢?---以跑批洗数据为例