线上Java 内存分析方法

1.jps

jps -q  只输出<pid>
jps -m  启动时main()的参数
jps -l  输出主类全名
jps -v  输出虚拟机进程启动时的参数

2.jstat

jstat -class <pid> 250 20               监视类装载卸载等信息
jstat -gc <pid> 250 20                  监视堆状况信息
jstat -gccapacity <pid> 250 20          监视堆状况信息,主要是各个区域使用到的最大最小空间
jstat -gcutil <pid> 250 20              监视堆状况信息,主要是已使用的百分比
jstat -gccause <pid> 250 20             和-gcutil差不多,只不过会额外输出上一次GC产生的原因
jstat -gcnew <pid> 250 20               监视新生代
jstat -gcnewcapacity <pid> 250 20       监视堆状况信息,主要是新生代各个区域使用到的最大最小空间
jstat -gcold <pid> 250 20               监视老年代
jstat -gcoldcapacity <pid> 250 20       监视老年代,主要是各个区域使用到的最大最小空间
jstat -compiler <pid> 250 20            JIT编译过的方法
jstat -printcompilation <pid> 250 20    JIT编译过的方法

3.jinfo

jinfo <pid>     打印配置信息

4.jmap(堆信息) 导出文件后使用jvisualVM进行分析

jmap -dump:live,format=b,file=heap.bin 29494

5.jhat(分析jmap生成的文件)

jhat heap.bin
http://localhost:7000/

6.jstack

jstack -F <pid>     打印线程信息
jstack -l <pid>     除了堆栈外,显示关于锁的附加信息
jstack -m <pid>     如果调用本地方法的话,可以显示C/C++的堆栈

7.jconsole

JDK自带bin目录下,这个工具很简单,随便点点就可以知道起功能了

8.jvisualvm

以上为转载内容

这篇关于jmap命令讲解更为详细

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容