`
cenwenchu
  • 浏览: 165337 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

对于GC回收优化转贴文章的一点补充

阅读更多

    记得在我前一阵子的blog中写了关于jdk1.5的pool的内存溢出问题,这次乘着新的memcache客户端的使用,做了一次全面的压力测试。

<?xml:namespace prefix = o ?>jdk采用1.5的压力测试结果压了一个周末回来就无法响应了,看了看它的GC输出:

全都是[Full GC [Tenured: 786431K->786431K(786432K), 3.4802480 secs] 1022399K->1022399K(1022400K), [Perm : 36711K->36711K(98304K)], 3.4808510 secs]

 

替换jdk1.5为jdk1.6昨天中午开始做压力测试到今天中午我取了一下日志,看见GC输出如下:

[GC [PSYoungGen: 256608K->3608K(257792K)] 859002K->606698K(1044224K), 0.0562040 secs] [Times: user=0.17 sys=0.01, real=0.05 secs]

 

这就很明显的看出了差别了,前者已经把家底全部都用完了,出于out of memory的状态了。后者还是普通的GC回收,回收效果很好,同时看了看jboss启动的时候回收后占用的YoungGen就1300K左右,因此跑了一天的压力测试应该说还算是正常。

 

Full GC也就是在年轻代无法满足内存分配要求的时候才去做,这时候其实对于中老两代来说应该已经可能被占用完毕了,Full GC发生频率也越来越高,服务器响应速度也越来越慢。

因此对于持久的压力测试来说,打印出GC可以很好的分析出应用本身的内存使用状况,避免长期运行中少量内存泄露最终导致的应用不可用。

 

顺便说一下memcache 客户端修改后的测试结果:

  测试方案:

                   开始50个并发,每个并发每次请求完毕后休息0.1秒,10分钟后增长50个并发,按此规律增长到500并发。

                   旧版本SIP是在JDK1.5环境下完成的压力测试,

                   压力机和以前一样,是10.2.226.40DELL19508CPU8G内存。

                   压力机模拟发出对一个需要签名的API不断的调用请求。

 

         测试结论:

                   老版本的SIP性能和以前一样,并发500的时候,TPS接近480CPU 68%

                   新版本的SIP性能比老版本好很多,并发500的时候,TPS接近770,且系统压力很小,CPU利用率平均只有16%

分享到:
评论

相关推荐

    Java_GC垃圾回收调优指南

    3. **其他调优参数**:除了上述基础设置外,还有许多其他参数可用于进一步优化GC行为,例如调整新生代和老年代的比例、选择特定的垃圾回收算法等。 #### 32位与64位系统的堆大小差异 - 对于32位进程模型,进程的...

    sun_GC回收机制及内存等优化

    sun_GC回收机制及内存等优化

    c#的GC垃圾回收机制详细讲解文档

    C#的垃圾回收机制(GC)是.NET框架中一个至关重要的特性,它负责自动管理和释放内存,从而减轻程序员的工作负担。GC的主要目标是回收不再使用的对象所占用的内存,以防止内存泄漏。在这个机制下,程序员无需手动管理...

    gc回收机制

    Java垃圾收集(Garbage Collection,简称GC)是Java编程中一个重要的特性,它负责自动管理内存,自动回收不再使用的...然而,理解和掌握GC的工作原理、不同类型的GC和如何优化GC,对于开发高性能的Java应用至关重要。

    java垃圾回收(gc)机制详解

    总结,Java垃圾回收机制是Java平台的一个核心特性,它使得开发者无需关心内存管理细节,但理解其工作原理和优化策略对于提高应用性能至关重要。通过选择合适的GC类型,调整参数,以及良好的编程习惯,我们可以有效地...

    格科微gc2035优化详解

    关于格科微摄像头gc2035如何优化的详细讲解! 有助于学习摄像头优化学习!

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

    总结来说,理解JVM堆的结构和GC的工作机制对于优化Java应用性能至关重要。调整合适的堆大小和内存分配策略可以有效减少垃圾回收的频率和时间,提高系统响应速度。此外,监控GC日志,分析GC行为,以及使用适当的GC...

    tomcat GC 优化配置

    ### Tomcat GC 优化配置详解 #### 一、概述 在服务器端应用中,Java虚拟机(JVM)的性能优化至关重要,特别是对于像Tomcat这样的应用服务器而言,其性能直接影响到系统的响应速度和资源利用率。本文将详细介绍如何...

    高吞吐低延迟Java应用的垃圾回收优化.docx

    在GC优化过程中,需要考虑多个因素,如GC算法、堆空间、内存占用、stop-the-world回收器、并发GC算法等。例如,在高吞吐低延迟的Java应用中,使用ParNew/CMS垃圾回收器可以获得最好的性能,但也可以尝试G1垃圾回收器...

    java jstat 查看哪个进程频繁GC垃圾回收

    Java垃圾回收(Garbage Collection, 简称GC)是JVM(Java Virtual Machine)管理内存的重要机制。在Java应用程序运行过程中,如果发现并回收不再使用的对象,可以防止内存泄漏,确保程序稳定运行。当我们遇到应用...

    GC垃圾回收机制

    GC 垃圾回收机制是 .NET 中一个复杂的机制,对于提高程序性能和减少内存泄露非常重要。CLR 垃圾回收器根据所占空间大小划分对象,大对象和小对象的处理方式有很大区别。 大对象堆和垃圾回收 在 .NET 1.0 和 2.0 中...

    程序避免被GC 回收 --------引用

    ### 程序避免被GC回收——引用 在Java中,垃圾收集(Garbage Collection, GC)机制自动管理内存资源,有效地解决了手动管理内存时可能遇到的问题,如内存泄漏等。然而,在某些情况下,我们希望某些对象能尽可能长...

    JVM性能调优-JVM内存整理及GC回收

    《JVM性能调优-JVM内存整理及GC回收》是一份深入探讨Java虚拟机(JVM)优化的重要学习资料,特别适合对JAVA编程有经验的开发者。这份文档详细阐述了JVM性能调优的关键概念,包括JVM内存模型、垃圾回收(Garbage ...

    C#垃圾回收机制GC

    【C#垃圾回收机制GC】深入解析 垃圾回收(Garbage Collection, GC)是现代编程语言中用于自动管理内存的一种机制。它的核心思想是通过跟踪和回收那些不再被程序引用的对象,以避免内存泄漏和提高内存利用率。在.NET...

    Visual GC(监控垃圾回收器)

    总的来说,Visual GC是Java开发者的得力助手,它通过直观的可视化界面,使开发者能够更好地理解和优化Java应用程序的内存管理和垃圾回收,从而提升整体性能,实现更高效的代码运行。无论是排查问题,还是进行性能...

    JVM GC垃圾回收.pdf

    JVM GC垃圾回收.pdfJVM GC垃圾回收.pdfJVM GC垃圾回收.pdfJVM GC垃圾回收.pdfJVM GC垃圾回收.pdf

    C#字符串补充方案 0GC

    字符串0GC补充方案 , 整体思想是用1点多MB的内存空间换取0GC。详细报告可以查看网址:https://coh5.cn/p/1ace6338.html

    GC.mmap-垃圾回收算法脑图

    GC总结

Global site tag (gtag.js) - Google Analytics