jvm性能分析

jprofile工具,参考 https://www.cnblogs.com/jpfss/p/8488111.html

以下是jdk自带工具(jstat,jvisualvm,jps, jstack, jmap, jconsole)的探讨:

java环境 :jdk 1.8(基于ubantu)

【jstat】

参考  https://www.jianshu.com/p/845924a1b8f2,https://www.cnblogs.com/sxdcgaq8080/p/11089841.html

1
jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]

 获取某个进程pid后,查看对应信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
jstat -options
 
-class 显示ClassLoad的相关信息;
-compiler 显示JIT编译的相关信息;
-gc 显示和gc相关的堆信息;
-gccapacity    显示各个代的容量以及使用情况;
-gcmetacapacity 显示metaspace的大小
-gcnew 显示新生代信息;
-gcnewcapacity 显示新生代大小和使用情况;
-gcold 显示老年代和永久代的信息;
-gcoldcapacity 显示老年代的大小;
-gcutil   显示垃圾收集信息;
-gccause 显示垃圾回收的相关信息(通-gcutil),同时显示最后一次或当前正在发生的垃圾回收的诱因;
-printcompilation 输出JIT编译的方法信息

 若报错,请查看https://www.cnblogs.com/huangyuanni/p/16146150.html 

 

 

 

 

【jvisualvm】

1.打开windows的JAVA_HOME/bin/jvisualvm.exe工具,添加远程jmx连接

2.在运行java application的机器上,配置jvm启动参数

以下参考 https://www.jianshu.com/p/81dd1f3311e5

1
2
3
4
5
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8777
-Dcom.sun.management.jmxremote.rmi.port=8777
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false

我这边是docker运行tomcat+war包的形式,故在bin/catalina.sh加入JAVA_OPTS即可

1
JAVA_OPTS="-Xms512m -Xmx1024m -Xss1024K -XX:PermSize=256m -XX:MaxPermSize=512m -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8777 -Dcom.sun.management.jmxremote.rmi.port=8777 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"

 3.现在可以开始监测啦

刚好用jmeter做了下压测(3000线程循环),查看jmx监控情况 

 

 

 

 

 

 

 

 

 

 

posted @   huangyn  阅读(78)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示