进入docker内部
docker exec -it 容器的名字 /bin/bash
查看容器中的进程
jps
top命令查看那个进程内存占用最高
top
查看内存占用:
free -h
查看docker容器分配情况:
jinfo 1
导出线程的日志:
jstack 1> jstack.log
导出堆现场:(最终要的一步,下载下来使用分析工具分析)
jmap -dump:format=b,file=heap.log pid
类加载的信息:
jmap -clstats 1
每秒钟查询内存GC的情况:
jstat -gc 1 1000
相关的备注:
S0C:年轻代中第一个survivor(幸存区)的容量 (字节)
S1C:年轻代中第二个survivor(幸存区)的容量 (字节)
S0U :年轻代中第一个survivor(幸存区)目前已使用空间 (字节)
S1U :年轻代中第二个survivor(幸存区)目前已使用空间 (字节)
EC :年轻代中Eden(伊甸园)的容量 (字节)
EU :年轻代中Eden(伊甸园)目前已使用空间 (字节)
OC :Old代的容量 (字节)
OU :Old代目前已使用空间 (字节)
MC:metaspace(元空间)的容量 (字节)
MU:metaspace(元空间)目前已使用空间 (字节)
YGC :从应用程序启动到采样时年轻代中gc次数
YGCT :从应用程序启动到采样时年轻代中gc所用时间(s)
FGC :从应用程序启动到采样时old代(全gc)gc次数
FGCT :从应用程序启动到采样时old代(全gc)gc所用时间(s)
GCT:从应用程序启动到采样时gc用的总时间(s)
附注:
如果容器没有top命令的安装步骤:
1、apt-get update
apt-get update
2、 apt-get install procps
apt-get install procps