由于公司服务器安装了多个解压版tomcat,其中有个经常运行异常,故整理了个使用使用jvisualvm查看tomcat线程情况的处理方案。
首先,tomcat是通过bin下service.bat安装的,安装命令:
service.bat install 服务名
然后在bin目录下找到 tomcat7w.exe。 这里我是使用的tomcat7,若tomcat8,则找到tomcat8w.exe,其他类推。
修改名称为 服务名w.exe。 例如: 安装服务名为 test, 则文件改名为 testw.exe。
修改后双击运行该程序.找到如下图选项卡
在java Options 中追加如下配置
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=端口号
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
点击确定。
运行tomcat。
在jdk的bin中找到 jvisualvm.exe 程序,双击运行。
即可看到对应tomcat的运行情况,可实时dump出tomcat的线程运行情况。
jvisualvm程序还可监控远程的tomcat情况,这里未做深究,以后遇到再说 (#^.^#)
另: 打印jvm内存溢出并分析内存
jvm中添加
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=c:\tom1dump.hprof
-XX:+PrintGC
内存溢出时输出内存信息到C盘的tom1dump.hprof 文件
通过内存分析工具 MemoryAnalyzer分析即可