java内存调优常用命令

1. jps 列出运行的java进程信息

命令格式:jps [-qmlv]

-q:指定只输出进程ID;

-m:输出传给Java进程的参数;

-l:输出主函数的完整路径;

-v:显示传给JVM的参数;

2.jstat 用于观察Java应用程序运行时信息的工具,可以用它查看堆信息的详细情况

命令格式:jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]

option可以由以下值构成:

-class:显示ClassLoader信息;

-compiler:显示JIT编译的相关信息;

-GC:显示与GC相关的堆信息;

-gccapacity:显示各个代的容量及使用情况;

-gccause:显示垃圾收集相关信息,通-gcutil,同时显示最后一次或当前正在发生的垃圾收集的诱发原因;

-gcnew:显示新生代信息;

-gcnewcapacity:显示新生代大小与使用情况;

-gcpermcapacity:显示永久代大小;

-gcold:显示老年代大小;

-gcoldcapacity:显示老年代大小;

-gcutil:显示垃圾收集的信息;

-printcompilation:输出JIT便宜的方法信息。

-t 参数可以在输出信息上加上一个Timestamp列,显示程序的运行时间。

-h 用于周期性输出表头信息,可以通过lines设置每多少行输出一次表头。

interval参数用于指定输出统计数据的周期,单位为毫秒。

count 指定一共输出多少次数据。

如:

jstat -class -t 2972 100 2

jstat -compiler ot 2972

jstat -GC 2972

jstat -gccapacity 2972

jstat -gccause 2972

3. jinfo 用来查看正在运行的Java应用程序的扩展参数,甚至支持在运行时修改部分参数

命令格式: jinfo <option> <pid>

option:

-flag<name>:打印指定jvm参数值;

-flag [+|-]<name>:设定指定jvm参数的布尔值;

-flag<name>=<value>:设置指定jvm参数的值;

如:

jinfo -flag MaxTenuringThreshold 2972

jinfo -flag PrintGCDetails 2972

修改参数:

jinfo -flag +PrintGCDetails 2972

4.jmap生成Java应用程序的堆快照和对象的统计信息。

jmap -histo 2972 >c:\test.txt     //文件输出堆快照

jmap -dump:format=b,file=c:\heap.hprof 2972       //到处堆快照后可以通过性能分析工具(如jhat、Visual VM)分析

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 08-30