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
jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
获取某个进程pid后,查看对应信息
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
-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即可
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监控情况
 

 
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号