OOM查询命令
存放gc log
因为我的 tomcat 放在 /usr/local/tomcat/tomcat7/tomcat_8082
mkdir -p /usr/local/tomcat/tomcat7/tomcat_8082/gc
修改 Tomcat 启动配置
自己根据自己的位置修改
“/usr/local/tomcat/tomcat7/tomcat_8081/bin/catalina.sh”
修改 JAVA_OPTS 这个行 没有加在最开始。export JAVA_OPTS="$JAVA_OPTS -Xms512m -Xmx2g -XX:NewRatio=2 -XX:SurvivorRatio=6 -XX:+UseConcMarkSweepGC \
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/usr/local/tomcat/tomcat7/tomcat_8082/gc/gc.log \
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=10M"解释这些参数:
-Xms512m 和 -Xmx2g 设置初始堆大小和最大堆大小。
-XX:NewRatio=2 设置新生代和老年代的比例。
-XX:SurvivorRatio=6 设置 Survivor 空间和 Eden 空间的比例。
-XX:+UseConcMarkSweepGC 启用 CMS(并发标记清除)垃圾回收器。
-XX:+PrintGCDetails 和 -XX:+PrintGCDateStamps 打印垃圾回收的详细信息。
-Xloggc:/usr/local/tomcat/tomcat7/tomcat_8082/gc/gc.log 指定 GC 日志文件的路径。
-XX:+UseGCLogFileRotation 启用垃圾回收日志文件轮换。
-XX:NumberOfGCLogFiles=5 设置日志文件轮换的最大数量。
-XX:GCLogFileSize=10M 设置每个 GC 日志文件的最大大小。
重启 Tomcat 实例
没有写脚本可以执行以下命令
/usr/local/tomcat/tomcat7/tomcat_8082/bin/shutdown.sh
/usr/local/tomcat/tomcat7/tomcat_8082/bin/startup.sh
我是写了脚本
“/usr/local/tomcat/tomcat7/restart_8082_mtp.sh”
#!/bin/bash
set -m
tomcat=/usr/local/tomcat/tomcat7/tomcat_8082
sh ${tomcat}/bin/shutdown.sh
sh ${tomcat}/bin/startup.sh
tail -f ${tomcat}/logs/catalina.out
直接重启
重启后验证结果
ls /usr/local/tomcat/tomcat7/tomcat_8082/gc/
tail -f /usr/local/tomcat/tomcat7/tomcat_8082/gc/gc.log.0.current
ps -ef|grep java |grep 8082
/usr/local/jdk/jdk7/jdk1.7.0_79/bin/jstat -gcutil ^C1000 10
/usr/local/jdk/jdk7/jdk1.7.0_79/bin/jstat -gcutil 3587304 1000 10
tail -f /usr/local/tomcat/tomcat7/tomcat_8082/gc/gc.log.0.current