首页主机资讯Ubuntu Tomcat日志中如何查看GC信息

Ubuntu Tomcat日志中如何查看GC信息

时间2025-10-03 21:52:04发布访客分类主机资讯浏览1066
导读:Ubuntu Tomcat日志中查看GC信息的步骤 1. 开启GC日志输出 要查看Tomcat的GC信息,需先通过修改启动脚本配置GC日志参数。进入Tomcat安装目录的bin文件夹,编辑catalina.sh文件(使用vim或nano等工...

Ubuntu Tomcat日志中查看GC信息的步骤

1. 开启GC日志输出

要查看Tomcat的GC信息,需先通过修改启动脚本配置GC日志参数。进入Tomcat安装目录的bin文件夹,编辑catalina.sh文件(使用vimnano等工具):

sudo vim /usr/local/tomcat/bin/catalina.sh

在文件顶部(确保在其他JAVA_OPTS设置之后)添加以下JVM参数(根据需求调整路径和参数值):

JAVA_OPTS="$JAVA_OPTS -Xms512m -Xmx1024m -XX:+UseG1GC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/var/log/tomcat/gc.log"

参数说明

  • -Xms512m:设置JVM初始堆内存为512MB;
  • -Xmx1024m:设置JVM最大堆内存为1024MB;
  • -XX:+UseG1GC:启用G1垃圾收集器(适用于Java 9及以上版本,若使用Java 8可替换为-XX:+UseConcMarkSweepGC);
  • -XX:+PrintGCDetails:打印GC详细信息(包括回收类型、耗时、堆内存变化等);
  • -XX:+PrintGCDateStamps:在GC日志中添加时间戳(便于定位时间点);
  • -Xloggc:/var/log/tomcat/gc.log:指定GC日志的输出路径(需确保目录存在且有写入权限)。

保存并退出编辑器。

2. 创建GC日志目录并重启Tomcat

若指定的GC日志目录(如/var/log/tomcat/gc)不存在,需先创建并设置权限:

sudo mkdir -p /var/log/tomcat/gc
sudo chown -R tomcat:tomcat /var/log/tomcat/gc  # 假设Tomcat用户为tomcat

重启Tomcat服务使配置生效:

sudo systemctl restart tomcat

若使用旧版本SysVinit,可使用:

sudo service tomcat restart

3. 查看GC日志

GC日志会输出到指定的文件中(如/var/log/tomcat/gc.log),可通过以下命令实时查看最新日志:

tail -f /var/log/tomcat/gc.log

日志内容示例:

2025-09-28T14:30:45.123+0800: [GC (Allocation Failure) [G1 Evacuation Pause] (young) 4096K->
    1024K(16384K), 0.0012345 secs]
2025-09-28T14:30:46.456+0800: [Full GC (System.gc()) 8192K->
    2048K(32768K), 0.0034567 secs]

日志字段解读

  • 2025-09-28T14:30:45.123+0800:GC发生的UTC时间(带时区);
  • [GC (Allocation Failure):GC类型(Minor GC或Full GC)及触发原因(如年轻代空间不足);
  • [G1 Evacuation Pause]:使用的GC算法(如G1的疏散暂停);
  • (young):GC作用的堆区域(年轻代、老年代或元空间);
  • 4096K-> 1024K(16384K):GC前年轻代使用量-> GC后年轻代使用量(年轻代总容量);
  • 0.0012345 secs:GC耗时(秒)。

4. 可选:使用工具分析GC日志

若需更直观地分析GC频率、耗时、内存回收效率等,可使用以下工具:

  • GCViewer(开源工具):将GC日志上传至GCViewer,生成可视化报告(如GC次数、暂停时间分布、吞吐量等);
  • jstat(JDK自带工具):实时监控GC状态,命令示例:
    jstat -gcutil <
        Tomcat进程ID>
         1000 10
    
    参数说明:< Tomcat进程ID> 通过ps -ef|grep tomcat获取;1000表示每1秒刷新一次;10表示刷新10次。输出结果包括各堆区域的使用率、GC次数、耗时等。

通过以上步骤,即可在Ubuntu Tomcat日志中查看并分析GC信息,帮助定位内存泄漏、GC频繁等问题。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu Tomcat日志中如何查看GC信息
本文地址: https://pptw.com/jishu/719156.html
Linux下telnet安全性如何保障 Telnet如何用于远程管理Linux

游客 回复需填写必要信息