博客统计信息

51cto推荐博客
用户名:guoli0813
文章数:52
评论数:102
访问量:68705
无忧币:127
博客积分:1354
博客等级:5
注册日期:2008-12-19

兰蔻御用运维总结之二
2010-02-08 18:48:47
版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。
这几天感冒造成了很大的麻烦。咱现在言归正传,讲JVM的原理与调优,这一部分很基础,很容易被遗忘,现在简单的续写一下:
J2SE发展到现在经历了精益求精的过程,垃圾回收算法演变过程是这样的:从引用数法,标识清除法,复制法,标识整理法,增量收集,分代法。好,咱们现在实用的垃圾回收的最新机制就是分代法。下面我们对此算法进行比较详细的分析:
分代法把可用内存分为年轻代,年老代和持久代。
年轻代分为了两个区:一个Eden区和两个Survivor区(可以配置多个,可以增加对象在年轻代中的存在时间),首先大部分的对象都是在Eden区生成,当Eden满了之后,就会把依旧存活的对象复制到其中一个Survivor区,当这个Survivor区满了之后,就会把依旧存活的对象复制到另外一个Survivor区。这个也满了,那就得复制到年老代了。
年老代:在年轻代里经历了垃圾回收后依旧存活的对象就会被放入此处,对象生命周期比较长。
持久代:里面存放静态化,在系统启动时即被load进的Java类或者方法。持久代大小通过-XX:MaxPermSize=<N>进行设置。
垃圾回收的方式有两种:Scavenge GC和FULL GC两种。
当在Eden中申请空间失败就会出发Scavenge GC,对Eden进行GC。FULL GC:在Tenured被写满,Perm被写满,System.gc()显式调用或者上一次GC后Heap的空间分配有变化。都会调用FULL GC。
垃圾回收的类型有串行收集器,并行收集器和并发收集器,咱们现在的服务器大部分都是多核多路了。所以并发收集器是我们研究的重点。使用-XX:+UseConcMarkSweepGC打开并发收集器,并发收集器主要减少年老代的暂停时间,他在应用不停止的情况下使用独立的垃圾回收线程,跟踪可达对象。在每个年老代垃圾回收周期中,在收集初期并发收集器 会对整个应用进行简短的暂停,在收集中还会再暂停一次。第二次暂停会比第一次稍长,在此过程中多个线程同时进行垃圾回收工作。
假如大家对以上内容感兴趣,我们可以细致探讨。因为这次主要讲的是兰蔻御用的运维全过程,所以我们不细致展开。
然后我们看更改后的拓扑图:

这是我们拓展的应用方案。前端是apache后端带两个tomcat,做负载均衡,apache管理所有静态内容,比如图片,js,css等等。动态的交给tomcat来打理。这方面的资料网上很多。我这儿就不累述,但是在实际应用中我发现,apache的反向代理模式的session在高并发的情况下传递有问题,尤其再没有1000G交换机的情况下,后来我应用了mod_jk的方式来解决的问题。还有一点要说的。就是Windows下用SFU来做NFS服务器,mount在linux上,图片通过mount直接写入Windows的分区,中文问题没有解决,我们不得不把linux更换成Windows。
这就是兰蔻御用的一期架构,今天有点难受,一会儿还得打点滴,不多写了,大家如果看的想深入,咱们可以邮件联系:guoli0813@163.com

本文出自 “峥狼--一个人的部落” 博客,转载请与作者联系!

分享至
更多
一键收藏,随时查看,分享好友!
0人
了这篇文章
类别:杂谈技术圈()┆阅读()┆评论() ┆ 推送到技术圈返回首页

文章评论

 
2010-02-23 17:14:18
博主病了啊 还这么认真pf

2010-03-08 09:41:16
顶博主,学习了。

2010-03-16 08:34:04
看不太懂!

 

发表评论            

【技术门诊】专家解析:软考重点难点及应试技巧
昵  称:
登录  快速注册
验证码:

请点击后输入验证码博客过2级,无需填写验证码

内  容: