服务的方式启动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改值是这两值对应的项
注册表截图以供参考(附件
相关推荐
- 调整永久代(PermGen space,JDK 7及以前版本使用)或元空间(Metaspace,JDK 8及以上版本使用)大小。对于永久代,可以使用`-XX:PermSize`和`-XX:MaxPermSize`参数进行配置;对于元空间,则通过`-XX:...
- `-Xms1024m`:设置启动时的初始堆内存大小为1GB。 - `-Xmx1024m`:设置最大堆内存大小为1GB。 - `-XX:PermSize=128m`:设置PermGen的初始大小为128MB。 - `-XX:MaxPermSize=256m`:设置PermGen的最大大小为256...
标题 "Tomcat内存配置" 涉及到的是在运行Apache Tomcat服务器时对Java虚拟机(JVM)内存设置的调整,这是优化Tomcat性能的关键步骤。Tomcat作为一个流行的Java Servlet容器,需要适当的内存配置以确保高效、稳定地...
在Java 8及更高版本中, PermGen 已被 Metaspace 替换,相应的设置参数也会有所不同。 3. **OutOfMemoryError: unable to create new native thread**: 当操作系统无法为新线程分配足够的内存时,会出现此错误。这...
在Java 7及更高版本中,PermGen已被Metaspace取代。 4. **-XX:MaxPermSize** (对于较旧的JVM): 设置JVM允许的最大类加载内存池大小。同样,这个参数只适用于Java 6及更早版本。 5. **-XX:MaxNewSize**: 用于设置...
- **PermGen**:永久代(Permanent Generation),存储类定义、静态变量等。在JDK 1.8之后已经被Metaspace所取代。 - **Java Virtual Machine Stack**:每个线程都有一个独立的Java虚拟机栈,用于存储局部变量、...
在Tomcat的启动脚本`catalina.sh`或`catalina.bat`中,通过设置环境变量`JAVA_OPTS`可以调整JVM内存。常见的参数有: 1. `-Xms`:初始化堆内存大小,例如`-Xms1024m`表示初始分配1GB内存。 2. `-Xmx`:最大堆内存...
java.lang.OutOfMemoryError: PermGen space ``` **解决方案**: 1. **增加JVM内存**:通过设置`-DMAVEN_OPTS`参数来调整JVM的内存分配。例如,可以通过以下命令行参数增加内存大小: ``` -DMAVEN_OPTS=-Xms1024...