性能测试——利用JDK自带java VisualVM监测服务器cpu等性能指标

1、java VisualVM目录:C:\Program Files\Java\jdk1.8.0_141\bin,ps:一时找不到项目路径的话,可以看下系统变量的path.

2、Tomcat启动的服务可参考如下:转自:https://blog.csdn.net/t227hou/article/details/39997607

使用JMX的配置方式:

 tomcat 的 catalina.sh 中添加如下参数

Java代码  收藏代码
  1. JAVA_OPTS='-Dcom.sun.management.jmxremote.port=8099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.6.104' 

注:

1. -Dcom.sun.management.jmxremote.port这个是配置远程 connection 的端口号的,要确定这个端口没有被占用

2. -Dcom.sun.management.jmxremote.ssl=false 指定了 JMX 是否启用 ssl

3. -Dcom.sun.management.jmxremote.authenticate=false   指定了JMX 是否启用鉴权(需要用户名,密码鉴权)

4. -Djava.rmi.server.hostname 这个是配置 server  IP 

配置好后,重启tomcat即可,然后接下来的操作则是jvisualvm的操作了,如下图所示:



右键选择“添加JMX连接”菜单,即可弹出如下窗口,在连接这个框里填上catalina.sh文件中所填的ip地址以及端口号,请注意一定要保持一致。


填好后,即会如下图所示,双击192.168.6.104:8099即可看到监测的统计图:





下面是通过jstatd远程连接tomcat:
找到需要远程连接的Linux服务器的jdk的bin目录,在其下面建立一个指定安全策略的文 件jstatd.policy(ps:文件名可随意取,只是需要与下面的执行脚本相对应 ,文件内容如下:
Java代码   收藏代码
  1. grant codebase "file:${java.home}/../lib/tools.jar" {  
  2.    permission java.security.AllPermission;  
  3. };  

注:
-J-Djava.security.policy=jstatd.policy         该处jstatd.policy对应上面说的建立安全策略文件名
-J-Djava.rmi.server.hostname=192.168.6.104    该处ip地址对应Linux服务器的IP地址
然后在jdk的bin目录下执行下面的脚本:
#  ./jstatd -J-Djava.security.policy=jstatd.policy -J-Djava.rmi.server.hostname=192.168.6.104
执行完后,即可以在客户端的Jvisualvm中建立连接






点击确定后即可。

当使用远程连接时,是看不到Linux服务器上tomcat的内存对象开销的,所以如果想监控Java程序中对象的内存开销,则还是需要在Linux的图形界面上运行JVisualvm来监控。

3、非Tomcat启动则可以手动添加JMX启动脚本来实现

首先确认服务进程的启动bin目录(服务在哪bin启动则脚本添加到哪即可),


touch jmx_start.sh --新建

chmod +x jmx_start.sh --添加权限

vim jmx_start.sh --编辑文件,添加代码:

 nohup java -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=172.20.203.112 -jar /opt/MicroService/webapps/$1.jar --spring.profiles.active=test > /dev/null 2>&1 &


执行完以上命令后记得启动脚本,切记加上项目名,例如:sh jmx_start.sh ppc-third-service-basic

ps:记得 ps -ef | grep java 查看一下jmx进程有没有真正启动


4、链接即可



5、附JMeter配置解释:



发布了34 篇原创文章 · 获赞 12 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/qq_32327737/article/details/81001372