jmap命令可以获得运行中的jvm的堆的快照,从而可以离线分析堆,以检查内存泄漏,检查一些严重影响性能的大对象的创建,检查系统中什么对象最多,各种对象所占内存的大小。
命令格式:
jmap [options] pid-dump:[live,]format=b,file=<filename>
--dump堆到文件,live指明是活着的对象,file指定文件名
因为在dump:live前会进行full gc,因此不加live的堆大小要大于加live堆的大小
-finalizerinfo 打印等待回收对象的信息 -heap 打印堆总结 -histo[:live] 打印堆的对象统计,包括对象数、内存大小等等 -permstat 打印java堆perm区的classloader统计 -F 强制,在jmap -dump或jmap -histo中使用,如果pid没有相应的回复-J 提供jvm选项,如:-J-Xms256m
docker中,jdk用镜像配置环境变量的方法如下:一、安装 JDK
1、首先,解压 JDK 程序包:
tar -zxf /mnt/software/jdk-7u67-linux-x64.tar.gz -C .
2、重命名 JDK 目录:
mv jdk1.7.0_67/ jdk/
二、设置环境变量
首先,编辑.bashrc文件
vi ~/.bashrc
然后,在该文件末尾添加如下配置:
export JAVA_HOME=/opt/jdk
export PATH=$PATH:$JAVA_HOME
最后,需要使用source命令,让环境变量生效:
source ~/.bashrc
jmap(JVM Memory Map):作用一方面是获取dump文件(堆转储快照文件,二进制文件),它还可以获取目标Java进程的内存相关信息,包括Java堆各区域的使用情况、堆中对象的统计信息、类加载信息等。
开发人员可以在控制台输入命令"jmap -help"查阅jmap工具的具体使用方式和一些标准选项配置。
它的基本使用语法为:
其中option包括:
说明:这些参数和linux下输入显示的命令多少会有不同,包括也受jdk版本的影响。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)