`

Windows服务启动Tomcat时的jvisualvm及PermGen配置(JAVA_OPTS)

 
阅读更多

服务的方式启动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改值是这两值对应的项

 

 

注册表截图以供参考(附件

 

 

 

 

  • 大小: 36.2 KB
分享到:
评论

相关推荐

    解决Java_heap_space问题

    - 调整永久代(PermGen space,JDK 7及以前版本使用)或元空间(Metaspace,JDK 8及以上版本使用)大小。对于永久代,可以使用`-XX:PermSize`和`-XX:MaxPermSize`参数进行配置;对于元空间,则通过`-XX:...

    java excel导出tomcat内存溢出处理方法

    - `-Xms1024m`:设置启动时的初始堆内存大小为1GB。 - `-Xmx1024m`:设置最大堆内存大小为1GB。 - `-XX:PermSize=128m`:设置PermGen的初始大小为128MB。 - `-XX:MaxPermSize=256m`:设置PermGen的最大大小为256...

    tomcat 内存配置

    标题 "Tomcat内存配置" 涉及到的是在运行Apache Tomcat服务器时对Java虚拟机(JVM)内存设置的调整,这是优化Tomcat性能的关键步骤。Tomcat作为一个流行的Java Servlet容器,需要适当的内存配置以确保高效、稳定地...

    apache服务器出现内存溢出的解决方法.doc

    在Java 8及更高版本中, PermGen 已被 Metaspace 替换,相应的设置参数也会有所不同。 3. **OutOfMemoryError: unable to create new native thread**: 当操作系统无法为新线程分配足够的内存时,会出现此错误。这...

    tomcat修改内存

    在Java 7及更高版本中,PermGen已被Metaspace取代。 4. **-XX:MaxPermSize** (对于较旧的JVM): 设置JVM允许的最大类加载内存池大小。同样,这个参数只适用于Java 6及更早版本。 5. **-XX:MaxNewSize**: 用于设置...

    JVisualVM简介与内存泄漏实战分析

    - **PermGen**:永久代(Permanent Generation),存储类定义、静态变量等。在JDK 1.8之后已经被Metaspace所取代。 - **Java Virtual Machine Stack**:每个线程都有一个独立的Java虚拟机栈,用于存储局部变量、...

    tomcat內存設置

    在Tomcat的启动脚本`catalina.sh`或`catalina.bat`中,通过设置环境变量`JAVA_OPTS`可以调整JVM内存。常见的参数有: 1. `-Xms`:初始化堆内存大小,例如`-Xms1024m`表示初始分配1GB内存。 2. `-Xmx`:最大堆内存...

    jeecg常见问题

    java.lang.OutOfMemoryError: PermGen space ``` **解决方案**: 1. **增加JVM内存**:通过设置`-DMAVEN_OPTS`参数来调整JVM的内存分配。例如,可以通过以下命令行参数增加内存大小: ``` -DMAVEN_OPTS=-Xms1024...

Global site tag (gtag.js) - Google Analytics