jvm内存调优工具

1、jps

全名:Java Virtual Machine Process Status Tool
与linux系统里的ps命令相似,能够输出正在运行的虚拟机进程并显示id号
用法:
jps [option][hostid] option命令选项,用来控制输出格式 hostid指特定主机,可以指IP地址、域名、协议、端口等,默认为本机
jps -q 只输出jvmid(即唯一id号)
jps -m 输出jvm启动时传递给主类的方法
jps -l 输出主类全名,如果就jar则输出jar路径
jps -v 输出jvm启动参数

注意:远程运行命令时要开启机器上的jstatd服务,开启需要权限(方法看参考文献 jvm性能调优工具之jps)

2、jstat

输出jvm的各种状态信息,如装载的类及内存使用量、堆内存统计、垃圾回收情况等。
用法: jstat [-命令选项][jvmid][间隔时间/毫秒][查询次数]

jstat -class 输出类加载的class数量以及空间信息
jstat -compiler 输出编译成功和失败的具体信息
jstat -gc 输出gc信息包括各个分区的使用情况
jstat -gccapacity 输出堆内存统计信息

3、jinfo

输出jvm各项参数信息,包括默认参数
Jinfo [option] pid

4、jmap

输出进程中所有对象的信息
用法:jmap [option] pid
jmap [option] executable core 输出core dump文件
jmap [option][server-id@] remote-hostname-or-IP 远程运行命令 (server-id唯一id,假如一台主机上多个远程debug服务,用此选项参数标识服务器)
参数
-dump:[live,]format=b,file={fileName} 生成对应的dump信息文件
-heap 输出堆的详细信息、垃圾回收器信息、参数配置以及分代情况
-histo 输出class的内存情况(实例数、大小、名字)
-histo:live,format=b,file=a.log pid 输出内存信息dump到a.log文件中
\jmap -histo pid | less 输出对象序号,实例数,所占内存大小,class name等信息

5、jstack

输出当前时刻的线程快照,称为threaddump文件。
jvm每个线程堆栈信息的集合,可以用来追踪线程状态(运行、阻塞、等待、未启动)
用法:jstack [option] pid
注意:windows环境只能使用-l命令
具体怎么使用这个工具调试见另一篇文章待补充

参考文献

JVM难学?那是因为你没认真看完这篇文章

JAVA JPS 命令详解
jvm 性能调优工具之 jps
jstat命令使用

猜你喜欢

转载自blog.csdn.net/weixin_37974649/article/details/85030260