JVM——jvm自带命令总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wx19900503/article/details/80962925
一、查看本地JDK安装路径
Wx-MacBookPro:~ wuxi$ /usr/libexec/java_home -V
Matching Java Virtual Machines (1):
1.8.0_131, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
可以看到很多自带工具
二、Jstack导出堆栈信息
1、ps -ef |grep java 程序pid;jps查看java程序pid
2、jstack pid:打印进程情况
3、jstack -l pid:打印有关附加锁的堆栈信息
4、jstack -l pid>xxx.txt :保存堆栈信息到指定文件再分析具体线程情况
如cpu高负载情况可以使用top -H -p pid查看具体哪个线程使用cpu较高
printf %x 线程id 转化为16进制 ,再jstack pid | grep 16进制线程id,查看具体内容进行定位

三、Jmap用于内存分析打印堆快照
1、jmap -heap pid :查看进程堆使用情况
2、jmap -histo pid:查看具体堆各个对象内存使用情况
3、jmap -dump:format=b,file=a pid:在当前目录下生成一个a的堆快照

四、Jhat分析Jmap打印出的堆快照信息
1、jhat 文件名: 启动了一个http服务,端口是7000,可以使用http://127.0.01:7000/进行访问
信息比较大,得具体代码有针对的分析,分析哪些对象无法回收的情况

五、Jstat分析内存回收情况
1、jstat -gc pid 毫秒 次数:查看该进程内存回收情况
可以查看Ygc Fgc情况来,定位Jvm参数设置是否合理

六、其他图形化监控工具
1、Jconsole
2、Visualvm
都是很直接可以到看出整个java应用程序运行情况,cpu内存堆栈信息等情况


官方文档:
大牛文档总结的很详细


猜你喜欢

转载自blog.csdn.net/wx19900503/article/details/80962925
JVM