前篇 - 小伙们都知道,java程序的性能监控主要是针对jvm中heap的监控~
那么在做压力测试时如何对heap、线程等一系列的指标进行的监控的呢?
首先-你若不懂命令,那么就需要了解一套Java程序性能监控工具!!!
我们都知道java运行环境
通过对JVM的监控来监测Java程序性能 主要监控Heap
heap组成
下面我们先简单介绍下通过敲击命令如何进行jvm的监控
jsp列出机器上的Java进程信息
jmap--Dump下来的文件可以用JVisualVM打开,也可以用jhat打开
也可以通过jhat查看
Jstack命令——dump heap info
线程死锁信息示例
好了,命令介绍到此为止!!!
简单介绍下工具,主要是jconsole和jvisualVm(均是jdk自带的)
Jconsole:
jvisualVm
Summary View
Monitor View
Thread View
heap info
JProfiler 商业工具 改天讲解
现在说明下如何远程使用jconsole和JVisualVM前提条件
需要配置tomcat的catalina.sh中给JAVA_OPTS
如果应用程序采用的是Tomcat可以通过jdk自带的jvisualvm对JVM进行监控。
首先需要在catalina.sh中给JAVA_OPTS增加下面的参数:
-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9991
-Djava.rmi.server.hostname=172.16.82.32 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
然后打开jvisualvm:
添加远程主机:
IP是你在配置java_opts时
-Djava.rmi.server.hostname指定的IP
添加JMX连接: 端口为-Dcom.sun.management.jmxremote.port