`
strongkill
  • 浏览: 8580 次
  • 来自: 广东
文章分类
社区版块
存档分类
最新评论

旧问题又出现了。频繁执行GC

阅读更多
  上一次出现频繁出现GC的问题是由于在低层类当中有一个方法执行效率低导致的。
修改过后就恢复正常。


  前天更新了一台64位的rhel5服务器。频繁GC的问题又出现了,最短的1秒一次,最长的3-4秒一次。
会不会是64位的参数跟32位的不一样?

Linux版本:
引用

Linux javaserver 2.6.18-8.el5 #1 SMP Fri Jan 26 14:15:14 EST 2007 x86_64 x86_64 x86_64 GNU/Linux


RESIN的jvm配置:

引用

<jvm-arg>-server</jvm-arg>
<jvm-arg>-verbose:gc</jvm-arg>
<jvm-arg>-Xmx512m</jvm-arg>
<jvm-arg>-Xms512m</jvm-arg>
<jvm-arg>-Xss128k</jvm-arg>
<jvm-arg>-Xmn189m</jvm-arg>
<jvm-arg>-XX:ParallelGCThreads=20</jvm-arg>
<jvm-arg>-XX:+UseConcMarkSweepGC</jvm-arg>
<jvm-arg>-XX:+UseParNewGC</jvm-arg>
<jvm-arg>-Xdebug</jvm-arg>
<jvm-arg>-Xloggc:gc.log</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg>
<jvm-arg>-agentlib:resin</jvm-arg>
<jvm-arg>-d64</jvm-arg>


GC记录:
引用

20734.347: [ParNew 456115K->273152K(524160K), 0.0429650 secs]
20734.391: [GC 273340K(524160K), 0.0090020 secs]
20735.945: [GC 290224K(524160K), 0.0243010 secs]
20738.090: [GC 311972K(524160K), 0.0404830 secs]
20739.666: [GC 315806K(524160K), 0.0459560 secs]
20741.839: [GC 313791K(524160K), 0.0484560 secs]
20743.456: [GC 317857K(524160K), 0.0540330 secs]
20745.628: [GC 321848K(524160K), 0.0546070 secs]
20747.216: [GC 323609K(524160K), 0.0610060 secs]
20749.392: [GC 328882K(524160K), 0.0602880 secs]
20750.983: [GC 337144K(524160K), 0.0720020 secs]
20753.170: [GC 342016K(524160K), 0.0689230 secs]
20754.778: [GC 345715K(524160K), 0.0799890 secs]
20756.973: [GC 347848K(524160K), 0.0733900 secs]
20758.579: [GC 352220K(524160K), 0.0851680 secs]
20760.780: [GC 354648K(524160K), 0.0787460 secs]
20762.409: [GC 360055K(524160K), 0.0938880 secs]
20764.618: [GC 369198K(524160K), 0.0896990 secs]
20766.460: [GC 386885K(524160K), 0.1158280 secs]
20768.692: [GC 387613K(524160K), 0.1024170 secs]
20770.340: [GC 392759K(524160K), 0.1218930 secs]
20772.576: [GC 400672K(524160K), 0.1117410 secs]
20774.249: [GC 406118K(524160K), 0.1337540 secs]
20776.499: [GC 411340K(524160K), 0.1220110 secs]
20778.193: [GC 415505K(524160K), 0.1506340 secs]
20780.458: [GC 417843K(524160K), 0.1273910 secs]
20782.144: [GC 430113K(524160K), 0.1588240 secs]
20783.233: [GC 436450K(524160K), 0.1419040 secs]
20784.970: [GC 438914K(524160K), 0.1674790 secs]
20787.283: [GC 445904K(524160K), 0.1491450 secs]
20788.997: [GC 447004K(524160K), 0.1728290 secs]
20791.286: [GC 448989K(524160K), 0.1519260 secs]


分享到:
评论
1 楼 strongkill 2008-08-24  



解决办法:

一、换jdk 6
二、换jrockit5/6

相关推荐

    JVM垃圾回收机制与GC性能调优

    过大或过小的堆可能导致GC频繁运行或运行时间过长,影响应用性能。年轻代比例过大可能会导致不必要的Minor GC,而过小则可能导致对象过早晋升到旧域,增加Full GC的压力。 总结来说,理解JVM堆的结构和GC的工作机制...

    JVM_GC_-调优总结.pdf

    - 堆空间设置恰好满足应用内存需求时,完全GC执行较快,但执行更频繁。 #### 二、Heap(堆)概述 **2.1 堆空间定义** - **定义**: 堆是Java程序中对象存储的地方,包括活动对象、非活动对象以及剩余内存。 - **...

    VisualGC 内存监控工具

    3. **垃圾收集(GC)活动**:展示垃圾收集器的运行频率和耗时,分析是否过于频繁或导致应用暂停时间过长。 4. **内存详细分布**:细化到类级别的内存占用,便于定位内存占用高的对象。 5. **对象生存周期**:通过...

    Java基础[Java基础]--Java GC工作原理

    - **年轻代**:由于大多数对象都会在短时间内死亡,因此频繁地在这里执行GC操作可以获得较高的回收率。 - **年老代**:这里存放的是生命周期较长的对象。由于这些对象存活的概率较高,因此对这里的GC操作次数相对较...

    gc_nandflashnftl_

    NFTL(NAND Flash Translation Layer)是针对NAND Flash特性的文件管理系统,用于解决NAND Flash的擦写次数限制、块坏道管理等问题。本文将深入探讨“gc_nandflashnftl_”相关的知识点,特别是垃圾回收(Garbage ...

    weblogic内存调优

    如果发现应用程序频繁触发GC,可能的原因包括显式调用System.gc(),中间件强制执行GC,堆大小设置过小,或者频繁创建和销毁对象。在这种情况下,可以尝试增加堆大小,优化对象的生命周期管理,使用对象池或复用对象...

    JVM性能调优

    当Eden区填满,GC开始执行Minor GC,将Eden区和一个Survivor Space中存活的对象复制到另一个Survivor Space,清空Eden和源Survivor Space。这个过程持续进行,直到对象经过一定次数的GC循环后被晋升到旧域。 旧域的...

    JVM 调优方法

    - **频繁GC的原因** 可能是显式调用`System.gc()`或`Runtime.gc()`,中间件软件自定义GC,堆大小设置过小,或者频繁创建和释放对象。理想情况下,每次GC后应保留50%-65%的堆空间。 2. **栈内存设定** - **每个...

    坏了!面试官问我垃圾回收机制(csdn)————程序.pdf

    在进行垃圾回收时,会出现“stop the world”现象,即在垃圾收集期间,应用程序的执行会暂停,以确保内存状态的一致性。因此,现代的垃圾收集器努力缩短这一暂停时间,并提高并发性能,如CMS(Concurrent Mark Sweep...

    hotspot 源码(JDK8)

    Hotspot会监控方法的运行情况,当发现某个方法频繁执行时,会选择将其编译为本地代码。此外,Hotspot还具有诸如标量替换、循环展开、锁消除等一系列高级优化技术,提升代码执行效率。 5. **内存模型** Hotspot...

    JVM角度调试优化MyEclipse

    例如,前10秒内执行了300多次 GC 和9次 Full GC,说明年轻代空间不足。 为解决这个问题,可以调整年轻代和持久代的大小,使之更加稳定,例如: ```ini -Xms512m # 设定堆的最小值为512m -Xmn192m # 设定年轻代的...

    java超有用的面试题目

    - 在并发环境下,`HashMap`可能会出现死锁等问题,主要是因为其内部操作是非线程安全的。 - 解决方案通常包括使用`ConcurrentHashMap`或者对`HashMap`进行外部同步控制。 #### LinkedHashMap的应用 - `...

    resin-jvm 调优

    由于它比单空间共同发生收集器中断频繁,因此它需要较少的内存,应用程序的运行效率也较高,注意,过小的护理域可以导致大量的临时对象被扩展到旧域中。这会造成收集器超负荷运作,甚至采用排它性工作方式完成收集。...

    安卓Android源码——窗口抖动(源码).zip

    - **内存管理**:合理使用内存,避免频繁的内存分配和回收,减少GC压力。 - **利用硬件加速**:开启硬件加速,利用GPU进行更多的绘图工作,减轻CPU负担。 - **系统级优化**:与系统层面的开发者合作,优化系统资源...

    python读取大文件越来越慢的原因与解决

    这一问题的出现可能会导致程序运行效率低下,影响开发者的编程体验和程序性能。在本文中,我们将探讨造成Python读取大文件速度减慢的原因,并给出相应的解决方法。 首先,一个常见的问题是由于Python垃圾回收机制...

    bitmap内存问题

    2. **重复创建Bitmap实例**:在应用程序中频繁地创建新的`Bitmap`对象而未及时回收旧的对象也会导致内存泄漏。 3. **缓存机制不当**:不合理的缓存策略也可能导致内存消耗过高。 #### 解决方案 为了有效解决这些...

    Java虚拟机中内存管理机制.pdf

    虽然这简化了编程,但过度或不合理使用内存可能导致JVM频繁执行垃圾回收,从而影响程序的运行效率。 垃圾回收的基本算法包括引用计数法、标记清除法和节点复制算法。引用计数法简单但无法处理循环引用;标记清除...

Global site tag (gtag.js) - Google Analytics