0 0

Tomcat一个小时进行一次 Full GC,正常么?3

Tomcat的 一部分GC log:

96695.481: [Full GC (System) [PSYoungGen: 2016K->0K(254848K)] [PSOldGen: 46048K->46946K(786432K)] 48064K->46946K(1041280K) [PSPermGen: 45377K->45377K(131072K)], 0.2745190 secs] [Times: user=0.27 sys=0.00, real=0.27 secs]
97480.189: [GC [PSYoungGen: 247488K->4256K(254784K)] 294434K->51202K(1041216K), 0.0078490 secs] [Times: user=0.05 sys=0.00, real=0.01 secs]
98145.106: [GC [PSYoungGen: 251744K->3592K(255296K)] 298690K->54484K(1041728K), 0.0117630 secs] [Times: user=0.09 sys=0.00, real=0.01 secs]
98976.405: [GC [PSYoungGen: 251720K->4336K(254976K)] 302612K->58576K(1041408K), 0.0107970 secs] [Times: user=0.07 sys=0.01, real=0.01 secs]
99798.018: [GC [PSYoungGen: 252464K->4288K(255424K)] 306704K->62620K(1041856K), 0.0115980 secs] [Times: user=0.08 sys=0.00, real=0.01 secs]
100295.988: [GC [PSYoungGen: 200915K->3138K(255360K)] 259247K->65486K(1041792K), 0.0096130 secs] [Times: user=0.06 sys=0.00, real=0.01 secs]
100295.998: [Full GC (System) [PSYoungGen: 3138K->0K(255360K)] [PSOldGen: 62348K->64238K(786432K)] 65486K->64238K(1041792K) [PSPermGen: 45709K->45709K(131072K)], 0.2929160 secs] [Times: user=0.30 sys=0.00, real=0.30 secs]
101125.187: [GC [PSYoungGen: 248640K->4368K(255680K)] 312878K->68606K(1042112K), 0.0057030 secs] [Times: user=0.03 sys=0.00, real=0.01 secs]
101950.380: [GC [PSYoungGen: 253520K->4240K(255616K)] 317758K->72598K(1042048K), 0.0089090 secs] [Times: user=0.05 sys=0.00, real=0.01 secs]
102769.550: [GC [PSYoungGen: 253392K->4216K(255808K)] 321750K->76578K(1042240K), 0.0101090 secs] [Times: user=0.06 sys=0.00, real=0.02 secs]
103589.148: [GC [PSYoungGen: 253624K->4240K(255744K)] 325986K->80562K(1042176K), 0.0082490 secs] [Times: user=0.05 sys=0.00, real=0.01 secs]
103896.526: [GC [PSYoungGen: 97003K->1600K(255680K)] 173325K->81930K(1042112K), 0.0062540 secs] [Times: user=0.05 sys=0.00, real=0.00 secs]
103896.532: [Full GC (System) [PSYoungGen: 1600K->0K(255680K)] [PSOldGen: 80330K->67925K(786432K)] 81930K->67925K(1042112K) [PSPermGen: 45721K->45721K(131072K)], 0.1944580 secs] [Times: user=0.19 sys=0.00, real=0.20 secs]
104715.727: [GC [PSYoungGen: 249465K->4456K(253952K)] 317390K->72382K(1040384K), 0.0063810 secs] [Times: user=0.04 sys=0.00, real=0.00 secs]
105473.791: [GC [PSYoungGen: 253928K->4145K(255872K)] 321854K->76142K(1042304K), 0.0083310 secs]

最开始的那个数字是 Tomcat从启动开始到当时GC的秒数吧。新生代大约800秒GC一次,Full GC 一个小时一次。
接触过生产系统的朋友,这种Full GC的频率正常么?


2012年2月21日 16:17

4个答案 按时间排序 按投票排序

0 0

一个小时一次,是tomcat的一个bug,不是你程序的问题,通过参数-XX:+DisableExplicitGC 就能去掉这一个小时一次的FGC。当然也有其他很多方法

2012年6月18日 16:35
0 0

这个和GC算法有关,而GC算法和当前内存占用,内存碎片多少都有关系的。如果你的系统开了,但是长期不使用,估计GC的频率会小很多。

2012年2月22日 11:32
0 0

大GC差不多吧

2012年2月22日 10:24
0 0

1hour 太久了吧。其实好像主要看gc后的内存吧,不是看时间吧

2012年2月21日 16:44

相关推荐

    tomcat GC 优化配置

    3. **复制(Copying)**:将内存分为两个区域,垃圾回收时只复制存活的对象到另一个区域。虽然避免了碎片问题,但需要双倍内存空间。 4. **标记-整理(Mark-Compact)**:综合前两种算法的优点,既能清除未标记的...

    Tomcat7优化.docx

    Tomcat7是Apache Tomcat服务器的一个版本,主要负责运行Java Servlets和JavaServer Pages(JSP)。优化Tomcat7的目标是为了提高网站的并发处理能力,确保在高流量环境下仍然能保持良好的响应速度和服务稳定性。这...

    Tomcat设置服务启动参数

    例如,对于一个简单的Web应用,可能不需要很高的内存设置;而对于复杂的企业级应用,则可能需要更高的内存设置。 - **监控性能**:设置完参数后,建议使用工具如VisualVM等监控应用程序的性能。这样可以了解内存使用...

    tomcat输出输出着就不输出了,什么原因?解决方法是

    在使用Tomcat运行Java Web应用程序时,可能会遇到一个常见的问题:`System.out.println()` 输出突然停止,仿佛被中断了一样。这种情况通常是由于多种因素引起的,包括但不限于以下几点: 1. **日志重定向**:Tomcat...

    jdk1.6版本附加tomcat1.6

    Tomcat 1.6,实际上应该是Tomcat 6.0,是一个开源的、基于Apache许可证的Servlet容器,主要用于运行Java Servlets和JavaServer Pages (JSP)。它是Java EE Web应用程序的标准实现之一。Tomcat 6.0与JDK 1.6的兼容性极...

    tomcat 安装、配置及调优

    - **`-XX:CMSFullGCsBeforeCompaction`:** 设置多少次Full GC后进行一次内存压缩操作。 - **`-XX:+CMSClassUnloadingEnabled`:** 启用类卸载。 - **`-XX:LargePageSizeInBytes`:** 设置大页内存的大小。例如`-XX:...

    gcviewer-1.29-bin.zip

    《GCViewer:深入解析Java GC日志分析利器》 在Java开发中,内存管理是至关重要的,特别是垃圾收集...在处理Tomcat、Glassfish等中间件的性能问题时,GCViewer无疑是一个强大的助手,值得每一位Java开发者掌握。

    TOMCAT优化

    Tomcat的运行依赖于Java虚拟机(JVM),因此对JVM进行优化是提升Tomcat性能的重要步骤之一。 - **JVM内存配置**:默认情况下,Tomcat使用的内存较小(通常为128MB),这在处理复杂的应用场景时可能会导致性能瓶颈。...

    Tomcat启动参数调优

    年轻代是堆的一个子集,主要用于存储新创建的对象。它又分为Eden区和两个Survivor区。 - **最大年轻代大小** (`-XX:MaxNewSize`): 设置年轻代的最大大小。 例如,`-XX:MaxNewSize=128m` 表示年轻代的最大大小为128...

    tomcat极限优化

    《Tomcat极限优化:应对高并发挑战》 在互联网服务中,服务器的性能优化是确保系统稳定、高效运行的关键。...同时,优化是一个持续的过程,需要不断监控、分析和调整,以适应不断变化的业务需求。

    Tomcat中Java垃圾收集调优分享.pdf

    在Java应用服务器,如Tomcat中,性能优化的一个关键方面是Java垃圾收集(Garbage Collection, GC)的调优。垃圾收集是Java虚拟机(JVM)自动管理内存的重要机制,它负责识别并释放不再使用的对象,以避免内存泄漏。...

    tomcat的调整优化

    - **-XX:+UseCMSCompactAtFullCollection**: 在执行Full GC时,CMS收集器会对内存进行压缩整理,减少内存碎片。 - **-XX:LargePageSizeInBytes=128m**: 设置堆内存的分页大小,有助于减少分页带来的性能损耗。 - **-...

    Tomcat调优.doc

    在优化Apache Tomcat服务器以...注意,过大的内存设置可能会导致垃圾收集器效率降低,而过小的设置可能导致频繁的Full GC,所以找到一个合适的平衡点至关重要。此外,定期分析GC日志和性能监控数据也是调优的重要环节。

    Tomcat基础镜像优化手册.docx

    - **年轻代大小** (`-Xmn`): 调整年轻代大小以适应应用负载特点,合理设置可有效降低 Full GC 的频率。 - **垃圾回收策略调优**: - **使用并发标记清扫器** (`-XX:+UseConcMarkSweepGC`): 在多核处理器环境中,该...

    tomcat/jvm优化下载完整版

    JVM优化入门,优化tomcat执行效率...基于CMS是用于对tenured generation的回收,也就是年老代的回收,目标是尽量减少应用的暂停时间,减少full gc发生的几率,利用和应用程序线程并发的垃圾回收线程来标记清除年老代。

    Tomcat7优化

    2. 垃圾收集器选择:对于高并发场景,可以选择Concurrent Mark Sweep (CMS) 或 G1 Garbage Collector,以降低Full GC的频率,提高响应速度。 3. 编译器设置:启用Server模式的HotSpot编译器,通过`-XX:+UseServerGC...

    Tomcat性能优化.docx

    对于 PermGen space,它是JVM内存中的一个区域,主要用于存储Class和Meta信息。如果应用加载了大量的类, PermGen space可能会耗尽,导致“java.lang.OutOfMemoryError: PermGen space”错误。在Java 8及以上版本中...

    Tomcat实战中的微调

    `CATALINA_OPTS`是`catalina.sh`脚本中的一个环境变量,它允许用户自定义JVM启动参数。通过修改这个变量,我们可以对Tomcat的运行时环境进行微调,比如设置堆内存大小、线程栈大小、垃圾收集器等。下面详细介绍几个...

    jvm虚拟机参数调优,tomcat调优

    合理的堆大小分配可以避免频繁的Full GC,提高系统稳定性。例如,`-Xms`和`-Xmx`分别用于设置初始堆大小和最大堆大小,而`-XX:NewRatio`可以调整新生代和老年代的比例。 垃圾收集器的选择直接影响到应用的响应时间...

    Tomcat中Java垃圾收集调优宣贯.pdf

    最后,测试JVM可用最大内存是一个重要的步骤,可以通过`java -XmxXXXXM -version`命令逐步增大内存值来确定。在Windows 32位系统中,最大值通常限制在1280M左右,但实际使用时应根据应用需求和系统资源进行适当调整...

Global site tag (gtag.js) - Google Analytics