打印gc.log 观察gc情况

本文介绍如何在catalina.sh中配置参数以生成gc.log文件,并通过一个实例详细展示了垃圾回收前后堆内存的变化情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在catalina.sh加入 -XX:+PrintClassHistogram -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -Xloggc:log/gc.log(具体位置应该都知道,set java_opts那里)

可以在/home/log下生产一个gc.log的文件 可以将此文件sz下来或者直接tail观看gc的情况。

以下是我gc.log中的一个片段

{Heap before GC invocations=1 (full 0): PSYoungGen total 917504K, used 31458K [0x00000007c0000000, 0x0000000800000000, 0x0000000800000000) eden space 786432K, 4% used [0x00000007c0000000,0x00000007c1eb8858,0x00000007f0000000) from space 131072K, 0% used [0x00000007f8000000,0x00000007f8000000,0x0000000800000000) to space 131072K, 0% used [0x00000007f0000000,0x00000007f0000000,0x00000007f8000000) ParOldGen total 1048576K, used 0K [0x0000000700000000, 0x0000000740000000, 0x00000007c0000000) object space 1048576K, 0% used [0x0000000700000000,0x0000000700000000,0x0000000740000000) PSPermGen total 131072K, used 10488K [0x00000006f0000000, 0x00000006f8000000, 0x0000000700000000) object space 131072K, 8% used [0x00000006f0000000,0x00000006f0a3e3a8,0x00000006f8000000) 0.793: [GC [PSYoungGen: 31458K->4293K(917504K)] 31458K->4301K(1966080K), 0.0087090 secs] [Times: user=0.03 sys=0.00, real=0.01 secs] Heap after GC invocations=1 (full 0): PSYoungGen total 917504K, used 4293K [0x00000007c0000000, 0x0000000800000000, 0x0000000800000000) eden space 786432K, 0% used [0x00000007c0000000,0x00000007c0000000,0x00000007f0000000) from space 131072K, 3% used [0x00000007f0000000,0x00000007f04316a0,0x00000007f8000000) to space 131072K, 0% used [0x00000007f8000000,0x00000007f8000000,0x0000000800000000) ParOldGen total 1048576K, used 8K [0x0000000700000000, 0x0000000740000000, 0x00000007c0000000) object space 1048576K, 0% used [0x0000000700000000,0x0000000700002000,0x0000000740000000) PSPermGen total 131072K, used 10488K [0x00000006f0000000, 0x00000006f8000000, 0x0000000700000000) object space 131072K, 8% used [0x00000006f0000000,0x00000006f0a3e3a8,0x00000006f8000000) }

ps:附上一张gc log的解释图 ![gc log解释][1] [1]: http://static.oschina.net/uploads/space/2013/0422/160249_llZB_617343.jpg

转载于:https://my.oschina.net/hyp3/blog/124453

### 常见的GC日志分析工具 对于`gc.log`文件的分析,存在多种有效的工具可供选择: #### 1. **GCEasy** 这是一款在线平台,能够解析并提供关于垃圾回收暂停时间、堆外内存泄漏以及JVM参数调整等方面的见解[^1]。它支持上传本地的日志文档或是直接粘贴文本内容来进行处理。 #### 2. **IBM GCMV (The GC and Memory Visualizer)** 由IBM开发的一款可视化应用程序,适用于深入研究Java应用中的对象分配模式与收集行为特性[^2]。该软件可以读取来自不同版本虚拟机产生的记录,并转换成易于理解的数据图表形式展示给用户查看。 #### 3. **HPjmeter** 这款性能监测解决方案不仅限于简单的统计报告生成;相反地,其内置了专门针对Sun/Oracle HotSpot VM设计的功能模块——即原名为HPjtune的产品线延伸而来的一部分——用来评估整个系统的运行状况,特别是当涉及到长时间跨度内的趋势变化时尤为有用。 #### 4. **GCPlot** 作为一款云端服务型产品,允许开发者轻松提交自己的归档资料以获取即时反馈意见。除了基本的支持之外,还提供了API接口以便集成到持续交付管道当中去实现自动化流程管理目的。 为了确保能正确捕获必要的诊断信息,在启动程序前应当设置好相应的命令行选项来启用详细的跟踪输出功能[^3]: ```bash java -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xloggc:path/to/gc.log YourApplication ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值