服务的方式启动tomcat时,一般的Java参数配置方式将发生变化。原因是,启动tomcat时不再是catalina.bat或者startup.bat生效,这时若再把JAVA_OPTS配置到bat中将导致配置失效。
Windows 服务运行的tomcat路径比如是这样
D:\..\apache-tomcat-7.0.55\bin\tomcat7.exe //RS//Tomcat7
一、配置jvisualvm监控
打开注册表(regedit.exe),搜索 Options ;找到如下路径
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0\Tomcat7\Parameters\Java\Options
各自服务器的中tomcat配置在注册表的路径未必和我一致。
双击 Options 在原有数据值后面加上如下内容
-Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
打开 jdk目录下的bin文件夹,打开jvisualvm.exe运行,在‘本地’ 上点右键 点击‘添加jmx链接。’
在弹出框中的链接框中,填写: localhost:8999 (上面配的端口号) 点 确定即可开始查看tomcat对cpu、内存、堆栈、permgen使用情况。
二、PermGen space配置
解决问题:启动tomcat 都报 java.lang.OutOfMemoryError: PermGen space
网上一般的解决办法都是去catalina.bat或者startup.bat加上如下一段代码,
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "
如果是服务方式来启动tomcat这样配置是无效的,tomcat启动没加载如上配置信息。
java.lang.OutOfMemoryError: PermGen space 产生的原因请自行百度。
解决方法就是增大内存配置
操作方法,按上面步骤一在注册表中找到 Options 加上如下代码
-XX:PermSize=512M -XX:MaxPermSize=1024M
完毕,重启tomcat ,重启jvisualvm ;到 jvisualvm 中查看PermGen的大小,是不是已经改过来了呢!
三、 -Xms800m -Xmx800m 这两项目不能直接在 Options 中加,在注册表java文件夹下面的 JvmMs和JvmMx改值是这两值对应的项
注册表截图以供参考(附件