概要
因为项目最后部署在阿里云云服务器上,所以分析性能不是很方便。 但是可以通过 VisualVM 远程监控 Tomcat , 以便性能分析。
可以看到CPU使用率, 获取堆栈快照, 手动堆栈回收, 死锁线程分析等等, 还可以安装其他插件。
本文将记录配置过程, 以便自己后续用到查看。
配置过程
配置startup.sh文件
在$CATALINA_HOME/bin/startup.sh 倒数第二行(也就是exec "$PRGDIR"/"$EXECUTABLE" start "$@"一行上边)写入下面的内容:
1 export CATALINA_OPTS="$CATALINA_OPTS 2 -Dcom.sun.management.jmxremote 3 -Djava.rmi.server.hostname=*.*.*.* YOUR SERVER IP 4 -Dcom.sun.management.jmxremote.port=7003 5 -Dcom.sun.management.jmxremote.ssl=false 6 -Dcom.sun.management.jmxremote.authenticate=true 7 -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password 8 -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access"
截个图, 看看startup.sh最后20行的数据。
参数说明:
-Dcom.sun.management.jmxremote 启用JMX远程监控 -Djava.rmi.server.hostname=*.*.*.* 你的tomcat服务器IP地址 -Dcom.sun.management.jmxremote.port=8003 jmx连接端口 -Dcom.sun.management.jmxremote.ssl=false 是否ssl加密 -Dcom.sun.management.jmxremote.authenticate=true 远程连接需要密码认证 -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password 指定连接的用户名和密码配置文件 -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access 指定连接的用户所拥有权限的配置文件
创建账号密码和权限配置文件
关于jmxremote.access和jmxremote.password 这两个文件jdk中已经有了,
把这两个文件复制到 $CATALINA_HOME/conf/ 目录下,修改一下名称
文件内容如下:
[root@localhost tomcat8]# cat conf/jmxremote.password
monitorRole 111111
controlRole 222222
[root@localhost tomcat8]# cat conf/jmxremote.access
monitorRole readonly
controlRole readwrite
修改jmxremote.password权限
[root@localhost tomcat8]# chmod 600 conf/jmxremote.password
然后, 重启Tomcat使之生效。
运行自己的JVisualVM
jvisualVM的可执行文件位置如下:
添加主机
远程,添加主机,输入服务器的ip:
"右键"->"添加JMX连接", 添加JMX连接和登陆验证
完成,可以显示了