使用VisualVM监测Tomcat JVM情况的配置(Windows+Linux)


一,Windows环境

1.若以服务的方式启动tomcat的话(例如tomcat7w.exe),在启动的界面添加如下参数:

-XX:MaxPermSize=256m
-Dcom.sun.management.jmxremote.port=8086
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

注:-XX:MaxPermSize可不用,只是配置PermGen大小而已。但由于启动界面不提供设置MaxPermSize的输入框,所以只好手动的在启动参数中添加,但Xms和Xmx两个参数可以直接在对话框中配置。

2.以bat脚本方式启动tomcat(startup.bat)。

配置环境变量CATALINA_OPTS
-Dcom.sun.management.jmxremote.port=8086 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

二,Linux环境

1.添加环境变量
修改/etc/profile 底端添加即可

参考如下:

JAVA_HOME=/usr/java/jdk1.6.0_30
JAVA_OPTS="-Xms512m -Xmx2048m -XX:MaxNewSize=256m -XX:MaxPermSize=256m"
CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname=192.168.1.98 -Dcom.sun.management.jmxremote.port=8086 -Dcom.sun.management.jmxremo
te.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
TOMCAT_HOME=/home/timekey/tomcat/
export JAVA_HOME PATH CLASSPATH TOMCAT_HOME JAVA_OPTS CATALINA_OPTS

其中VisualVM主要用到的是CATALINA_OPTS的参数配置。

注:Linux环境下,还需指定-Djava.rmi.server.hostname=192.168.1.98 才能使JMX设置成功。

-------------------------------------
打开jdk bin目录下的jvisualvm.exe 添加tomcat的jmx服务,根据上面的配置填入。



 

这样就可以检测tomcat的JVM内存情况了。

而从上面的配置可以看到,其实配置tomcat的JVM的时候,不用像网上很多文章说的去修改catalina.bat或者catalina.sh脚本中的内容,因为脚本中其实基本配置都是读取环境变量JAVA_OPTS和CATALINA_OPTS的,我们只要根据自己的需求修改这些变量即可。

另:VisualVM工具下也提供一些插件方便你管理和维护JVM,建议你把他们都装上,虽然有些没什么用,例如J2ME或glassfish的等,但他们的体积都很小,一共才3M左右。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Tomcat服务器通常使用JVM (Java Virtual Machine) 来运行,内存配置对于它的性能至关重要。主要有以下几个方面的设置: 1. **JVM堆内存**(Heap Memory):这是Java应用的主要内存区域,用于存放对象实例。通过`-Xms`和`-Xmx`命令行参数设置初始堆大小(最小值)和最大堆大小(最大值)。例如:`-Xms512m -Xmx1024m`,分别表示初始512MB和最大1GB。 2. **非堆内存**(Non-heap Memory):包括常量池、元数据区和线程上下文类加载器等。这部分内存不会自动调整,需要手动配置,如`-XX:PermSize`(永久代大小)和`-XX:MaxPermSize`。 3. **年轻代**(Young Generation):包括Eden空间、Survivor Space和Tenured Generation,主要用于对象的创建和回收。可以设置为固定大小或分段,如`-XX:NewRatio`用于eden/survivor的比例。 4. **老年代**(Old Generation):长期存活的对象会被移入这里,设置`-XX:MetaspaceSize`限制元数据区域大小,避免溢出。 5. **持久化缓存**(如果启用了持久连接):Tomcat会分配额外的内存用于存储连接信息,这可以通过`org.apache.tomcat.util.http.fileupload.FileUploadSupport.MAX_FILE_SIZE`控制。 6. **JVM内存溢出监控**:可以启用JVM的堆转储日志(`-XX:+HeapDumpOnOutOfMemoryError`),以便在发生内存溢出时生成堆转储文件供分析。 为了保证稳定性和性能,建议根据实际应用需求和资源情况,通过监控工具(如VisualVM、JConsole等)动态调整这些配置。记得定期检查日志以诊断潜在的问题。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值