docker容器内部排查内存占用高的情况

x33g5p2x  于2022-06-06 转载在 Docker  
字(0.7k)|赞(0)|评价(0)|浏览(447)

进入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

相关文章