本文主要是介绍JVM虚拟机学习(5)---JDK常用工具(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录页:https://mp.csdn.net/postedit/95937156
1. 常用的命令行工具
1.1. jinfo
jinfo常用于查看或设置JVM参数,执行jinfo -help查看命令格式。
参数:
- pid:进程号
- executable core 产生core dump文件
- [server-id@]remote server IP or hostname 远程的ip或者hostname,server-id标记服务的唯一性id
option:
- -flag name 输出对应名称的参数
- -flag [+|-]name 开启或者关闭对应名称的参数
- -flag name=value 设定对应名称的参数
- -flags 输出全部的参数
- -sysprops 输出系统属性
- no option 输出全部的参数和系统属性
1.1.1. jinfo pid
jinfo pid命令用于查看进程的全部参数和系统属性,会打出较多的参数信息。
1.1.2. jinfo -flag name pid
输出对应名称的参数,可以查看指定的 jvm 参数的值,减号代表该参数未生效,加号代表生效。
1.1.3. jinfo flag [+|-]name pid
开启或者关闭对应名称的参数,常用于无法重启线上应用时又需要添加启动参数。
1.1.4. jinfo -flag name=value
如果JVM启动参数是value值,需要使用该命令修改指定参数的值。
1.1.5. jinfo -flags pid
输出进程全部JVM参数
1.2. jmap
当出现频繁gc时我们会使用jmap dump出程序的内存占用信息,也会使用该命令查看堆信息。
参数:
- executable: 产生核心dump的Java可执行文件。
- core: 需要打印配置信息的核心文件。
- server-id 可选的唯一id,如果相同的远程主机上运行了多台调试服务器,用此选项参数标识服务器。
- remote server IP or hostname 远程调试服务器的IP地址或主机名。
下面介绍主要使用的方法
1.2.1. jmap -heap pid
用于查看java进程堆内存信息。
1.2.2. jmap -dump:format=b,file=heapdump.phrof pid
这是我们发现程序内存溢出或频繁gc时经常使用的一个命令,用于生成堆转储快照dump文件,需要注意的是执行过程中会暂停应用,线上系统慎用。导出dump文件后可以使用MAT工具进行分析。链接:
https://download.csdn.net/download/u011294519/11796613
1.3. jstack
jstack命令我们经常用于查看进程的线程状态
jstack -l pid > file.txt
2. 思维导图
这篇关于JVM虚拟机学习(5)---JDK常用工具(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!