对于GC回收优化转贴文章的一点补充
2008-10-21 14:25
302 查看
记得在我前一阵子的blog中写了关于jdk1.5的pool的内存溢出问题,这次乘着新的memcache客户端的使用,做了一次全面的压力测试。
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.40,DELL1950,8CPU,8G内存。
压力机模拟发出对一个需要签名的API不断的调用请求。
测试结论:
老版本的SIP性能和以前一样,并发500的时候,TPS接近480,CPU 68%
新版本的SIP性能比老版本好很多,并发500的时候,TPS接近770,且系统压力很小,CPU利用率平均只有16%
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.40,DELL1950,8CPU,8G内存。
压力机模拟发出对一个需要签名的API不断的调用请求。
测试结论:
老版本的SIP性能和以前一样,并发500的时候,TPS接近480,CPU 68%
新版本的SIP性能比老版本好很多,并发500的时候,TPS接近770,且系统压力很小,CPU利用率平均只有16%
相关文章推荐
- 对于GC回收优化转贴文章的一点补充
- Java性能优化之JVM GC(垃圾回收机制)
- android垃圾回收机制及程序优化System.gc
- 这篇文章证实了索引对于IN,LIKE的优化程度,顺便学会了怎么看看语耗费的时间
- 从C#垃圾回收(GC)机制中挖掘性能优化方案
- Unity优化大全(四)之CPU-GC(内存回收)和Sricpt
- Android垃圾回收机制及程序优化System.gc
- .NET垃圾回收(GC)机制性能优化方案
- Unity优化大全(四)之CPU-GC(内存回收)和Sricpt
- 成为Java GC专家(3)—如何优化Java垃圾回收机制
- 优化hbase JVM GC 参数,避免由于JVM内存回收引发的ZooKeeper会话超时进程退出事件
- 对于tableView优化的见解,欢迎补充
- 对于【没有苹果开发账号,只有p12文件和mobileprovision文件进行打包】文章的补充
- 对于文章页面优化的一些看法
- 对于上一篇文章的补充,关于String类型的比较
- 成为Java GC专家(3)—如何优化Java垃圾回收机制
- Java性能优化之JVM GC(垃圾回收机制)
- 对于上一篇文章的补充,关于String类型的比较
- 成为Java GC专家系列(3) — 如何优化Java垃圾回收机制
- c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程