Tomcat、JVM性能指标监控
一、 监控工具的选取
JDK本身提供了很多方便的性能调优监控工具,比较常用的可视化性能监控工具有Jconsole,VisualVM,YourKit Java Profiler。而Jconsole是比较轻量级的开源免费的监控工具,提供的MBean对象封装有所有的性能参数信息,可以通过它提供的api很轻松的获取当前的性能参数信息,可视化界面中MBean结构如下图:
二、 设置本地监控
1. Jconsole是可执行的文件,在JAVA_HOME\bin目录中,如果配置过系统路径直接在命令行键入Jconsole来启动Jconsole,否则命令行键入完整的Jconsole.exe文件的路径后启动 ,如下图:
登录界面如下图:
2. 监控特定的应用程序,可通过进程的ID连接到该应用程序,此应用程序必须和Jconsole运行在相同的用户ID下,监控Jconsole程序运行如下图:
图:可视化监控界面
3. 在Windows系统上,可以使用任务管理器,找到应用程序的PID,如下图所示:
图:windows任务管理器界面
4. Jconsole和被监视的应用程序必须运行在相同的用户下,并且拥有管理和监控系统的权限。
三、 设置远程监控
1. 必须开启service服务,在tomcat安装的bin目录下双击tomcatXw.exe,例如tomcat7w.exe,设置java的启动参数
2. 如果开启不了,需安装service服务,cmd命令行cd到tomcat的bin目录键入service install.安装服务如图1,重新打开tomcatXw.exe,点击java选项设置启动参数,如图2:
图1:安装tomcat服务
1) 不需要用户名密码远程连接的启动参数配置
Dcom.sun.maagement.jmxemote.prot=8999
Dcom.sun.maagement.jmxemote.ssl=false
Dcom.sun.maagement.jmxemote.autherticate=false
2) 需要用户名密码的验证登录的启动参数配置
Dcom.sun.maagement.jmxemote.prot=8999
Dcom.sun.maagement.jmxemote.ssl=false
Dcom.sun.maagement.jmxemote.autherticate=true
Dcom.sun.maagement.jmxemote.access.file="D:\Program Files\ jdk1.8.0_77\jre\lib\management\ jmxemote . access "
Dcom.sun.maagement.jmxemote.password.file=" D:\ProgramFiles\ jdk1.8.0_77\jre\lib\management\ jmxemote . password "
如下图位置配置:
图2:启动参数配置
3. 在Jconsole上点击远程连接,输入远程ip地址和配置的端口号点击连接,如下图:
图:远程登录连接
连接后的界面如下图:
图:远程连接后的可视化界面
四、 程序代码
程序代码地址:https://xxsrd.f3322.org/svn/HDZX/Android/DOC/TomcatJVM
1) 使用Jconsole提供的api连接Jconsole,如下图:
图:api连接Jconsole
2) JVM部分的监控,如下图:
图:JVM部分的代码
3) Tomcat部分的监控,如下图:
图:Tomcat部分的代码
五、 运行结果
1) JVM的监控运行结果,如下图:
图:JVM监控结果
2) Tomcat的监控运行结果
图:Tomcat监控结果
六、 如何更改tomcat的进程名字
打开tomcat_home\bin\setclasspath.bat文件,找到set_RUNJAVA="%JRE_HOME%\bin\java.exe",将该行注释掉或删除掉然后添加下面两行代码后保存:
copy "%JAVA_HOME%\bin\java.exe" "%JAVA_HOME%\bin\ my_tomcat.exe"
set_RUNJAVA="%JAVA_HOME%\bin\my_tomcat.exe",其中my_tomcat就是你所起的进程名字(在windows任务管理器中显示的名字),之后重启tomcat,配置位置如下图:
图:setclasspath.bat配置信息
windows任务管理器中显示如下:
图:tomcat进程名字更改结果
七、 注意事项
1. 远程连接tomcat前必须先检查service.bat服务是否安装开启,缺省情况下tomcat的服务是关闭的,可以通过命令行cd到tomcat的bin目录键入service install命令安装服务
2. 配置JVM的启动参数,通过tomcatXw.exe的java选项来配置jvm的端口号,设置登录模式为安全模式。
3. 防火墙必须开放你所设置的jvm端口号。
4. 如果你的连接模式为用户名密码验证登录,修改jmxremote.access文件如图1,修改jmxremote.password文件的权限为只有owner可读
如图2。
图1:修改jmxremote.access文件
修改jmxremote.password添加内容,如图2:
图2:修改jmxremote.password添加内容
此时远程连接登录所使用的用户名为admin密码是123。