JVM命令汇总

一、jps(虚拟机进程状况工具)命令汇总

格式:

jps [ options ] [ hostid ]

主要选项:

选 项作 用
-q只输出LVMID,省略主类的名称
-m输出虚拟机进程启动时传递给主类main函数的参数
-l输出主类的全名,如果进程执行的是jar包, 则输出jar路径
-v输出虚拟机进程启动时的JVM参数

示例:

  1. jps : 输出本机正在运行的Java程序
    jps示例

  2. jsp -v :输出虚拟机进程启动时的JVM参数
    jsp -v示例

二、jstat(虚拟机统计信息监视工具)命令汇总

格式:

jstat [ option vmid [interval[s|ms] [count]] ]

主要选项:

选 项作 用
-class监视类加载、卸载数量、总空间以及类转改所耗费的时间
-gc监视Java堆状况,包括Eden区、2个Survivor区、老年代、永久代等的容量,已用空间,垃圾收集时间合计等信息
-gccapacity监视内容与-gc基本相同,但输出主要关注Java堆各个区域使用到的最大、最小空间
-gcutil监视内容与-gc基本相同,但输出主要关注已使用空间占总空间的百分比
-gccause与-gcutil功能一样,但是会额外输出导致上一次垃圾收集产生的原因
-gcnew监视新生代垃圾收集状况
-gcnewcapacity监视内容与-gcnew基本相同,输出主要关注使用到的最大、最小空间
-gcold监视老年代垃圾收集状况
-gcoldcapacity监视内容与-gcold基本相同, 输出主要关注使用到的最大、最小空间
-gcpermcapacity输出永久代使用到的最大、最小空间
-compiler输出即时编译器编译过的方法、耗时等信息
-printcompilation输出已经被及时编译的方法

示例:

  1. jstat -gc 3102 1000 10 : 每1000毫秒查询一次进程3102垃圾收集状况,共查询10次
    jstat -gc 3102 1000 10示例
  2. jstat -gcutil 3102 :查询各个区域的使用占比
    jstat -gcutil 3102示例

三、jinfo(Java配置信息工具)命令汇总

格式:

jinfo [ option ] pid

主要选项:

选 项作用
-flagto print the value of the named VM flag
-flagsto print VM flags
-flag [+|-]<name>to enable or disable the named VM flag
-flag <name>=<value>to set the named VM flag to the given value
-syspropsto print Java system properties
<no option>to print both of the above

示例:

  1. jinfo -flag CMSInitiatingOccupancyFraction 3102 : 查询CMSInitiatingOccupancyFraction参数值
    jinfo -flag CMSInitiatingOccupancyFraction 3102 示例
  2. jinfo -sysprops 3102 :输出系统信息(部分结果)
     jinfo -sysprops 3102示例

四、jmap(Java内存映像工具)命令汇总

格式:

jmap [ option ] vmid

主要选项:

选 项作 用
-dump生成Java堆转储快照。格式为-dump:[live,]format=b,file=<filename>,其中live子参数说明是否只dump出存活的对象
-finalizerinfo显示在F-Queue中等待Finalizer线程执行finalize方法的对象。只在Linux/Solaris平台下有效
-heap显示Java堆详细信息,如使用哪种回收器、参数配置、分代状况等。只在Linux/Solaris平台下有效
-histo显示堆中对象统计信息,包括类,实例数量、合计容量
-permstat以ClassLoader为统计口径显示永久代内存状态。只在Linux/Solaris平台下有效
-F当虚拟机进程对-dump选项没有响应时,可使用这个选项强制生成dump快照。只Linux/Solaris平台下有效

示例:

  1. jmap -dump:format=b,file=test.bin 3102 : 使用jmap生成dump文件
     jmap -dump:format=b,file=test.bin 3102示例

五、jhat(虚拟机堆转储快照分析工具)命令汇总

格式:

jhat [-stack ] [-refs ] [-port ] [-baseline ] [-debug ] [-version] [-h|-help]

主要选项:

选 项作 用
-J<flag>Pass <flag> directly to the runtime system. For example, -J-mx512m to use a maximum heap size of 512MB
-stack false:Turn off tracking object allocation call stack
-refs false:Turn off tracking of references to objects
-port <port>:Set the port for the HTTP server. Defaults to 7000
-exclude <file>:Specify a file that lists data members that should be excluded from the reachableFrom query
-baseline <file>:Specify a baseline object dump. Objects in both heap dumps with the same ID and same class will be marked as not being “new”
-debug <int>:Set debug level.
0: No debug output
1: Debug hprof file parsing
2: Debug hprof file parsing, no server
-versionReport version number
<file>The file to read

示例:

  1. jhat test.bin : 使用jhat分析dump文件

屏幕显示“Server is ready.”的提示后,用户在浏览器中输入http://localhost:7000/可以看到分析结果,如图所示。 分析结果默认以包为单位进行分组显示,分析内存泄漏问题主要会使用到其中的“HeapHistogram”(与jmap-histo功能一样)与OQL页签的功能,前者可以找到内存中总容量最大的对象,后者是标准的对象查询语言,使用类似SQL的语法对内存中的对象进行查询统计。
jhat test.bin示例

六、jstack(Java堆栈跟踪工具)命令汇总

格式:

jstack [ option ] vmid

主要选项:

选 项作 用
-F当正常输出的请求不被响应时,强制输出线程堆栈
-l除堆栈外,显示关于锁的附加信息
-m如果调用到本地方法的话,可以显示C/C++的堆栈

示例:

  1. jstack -l 3500 :使用jstack查看线程堆栈(部分结果)
     jstack -l 3500示例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值