1、进入k8s容器对应服务节点查看进程号
ps aux|grep java
ps aux 是用BSD的格式来显示 java这个进程
显示的项目有:USER , PID , %CPU , %MEM , VSZ , RSS , TTY , STAT , START , TIME , COMMAND
USER: 行程拥有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的记忆体使用率
VSZ: 占用的虚拟记忆体大小
RSS: 占用的记忆体大小
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该行程的状态,linux的进程有5种状态:
D 不可中断 uninterruptible sleep (usually IO)
R 运行 runnable (on run queue)
S 中断 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (”zombie”) process
注: 其它状态还包括W(无驻留页), <(高优先级进程), N(低优先级进程), L(内存锁页).
START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令
2、查看进程的GC情况
31–进程id,1000–每隔1000毫秒打印一次
jstat -gc pid 1000
jstat -gc pid输出的各列的含义:
S0C:第一个Survivor(幸存区)区的大小(KB)。
S1C:第二个Survivor区的大小(KB)。
S0U:第一个Survivor区的使用大小(KB)。
S1U:第二个Survivor区的使用大小(KB)。
EC:Eden区的大小(KB)。
EU:Eden区的使用大小(KB)。
OC:Old区的大小(KB)。
OU:Old区的使用大小(KB)。
MC:Metaspace的大小(KB)。
MU:Metaspace的使用大小(KB)。
CCSC:压缩类空间的大小(KB)。
CCSU:压缩类空间的使用大小(KB)。
YGC:从应用程序启动到现在,Young GC的次数。
YGCT:从应用程序启动到现在,Young GC的总时间(秒)。
FGC:从应用程序启动到现在,Full GC的次数。
FGCT:从应用程序启动到现在,Full GC的总时间(秒)。
GCT:从应用程序启动到现在,所有GC的总时间(秒)。
3、抓取dump文件
jmap -dump:live,format=b,file=dump02261015.log pid
4、运行IBM HeapAnalyzer工具
打开IBM HeapAnalyzer工具所在文件夹,执行cmd进入命令窗口
java -jar -Xmx2G .\ha456.jar
5、打开dump文件
工具下载地址
https://download.csdn.net/download/weixin_41827053/88422254