随笔-61  评论-13  文章-19  trackbacks-0

关于软件优化,硬件升级方面的:

至强64位双CPU
2G内存 DDR2 533

tomcat5.5默认配置
java5.0默认配置
mysql5.0默认配置

带宽为10M独享.
如何改变软件方面的配置要求。优化方面的资料。硬件方面要升级哪些? 以达到支持大约在线用户为最高2000人。

处理:
       2000 人在线,每秒钟请求数应该在几百次或者更低些的程度,并发数不会超过100(平均10妙请求一次),使用普通的 PC 机,每秒钟也能够处理上百次的请求;
       缓存优化:解决性能问题首先想到的就是缓存,在 Web 应用中有很多缓存的方式,可以缓存到 Web 层的 servletContext 中,也可以缓存到业务层中,甚至可以在数据库中建立冗余。而生成静态页面是一种极端的做法,一般来说会增加复杂性,同时可能会对灵活性和可维护性造成很大伤害。缓存的要点在于命中率,命中率低的东西不应该缓存,除非对内存的价格不做考虑。总结起来设计上就两句话,使用 N 层结构,合理缓存。根据程序的需要,适当是使用缓存机制;
       程序进行优化方法,比如:每次查找部分记录,而不是全部查出来,这样既可以减轻服务器的负担,也可以减少网络传输量; 对于系统中的数据库连接一定要进行妥善的处理; 对需要用 scrchrnozied 的地方要用,但是有些地方可以不用同步化的,这个对速度影响也很大;从代码入手,优化程序,在数据持久化上进行改进,采用成熟的库访问对象(Data Access Object)设计模式也会节省你的服务器开销。
       硬件升级:硬件方面还不行,硬盘最好搞阵列,还可以再来一个服务器,弄个负载均衡,由两个服务器来处理用户的请求,apache必然是要用到的,他将挡在tomcat前处理http请求。
       注意:在硬件足够强大的时候,将 web 与 db 分两台服务器来做,只会降低效率,因为网络编组的成本要比本地内存中的复制高几个数量级。同样道理,负载均衡也只会导致更复杂的结构,会引起更多的问题,并产生更低于下的效率。将一个应用分布于多台机器的唯一理由,就是由于一台机器根本顶不住,不得不分。
       环境优化:调Tomcat、JVM的Heap大小等参数做一些优化, Tomcat的虚拟内存管理有最大值限制,可以并发运行多个Tomcat来均衡负载,tomcat5.5默认配置  ==>改了JAVA_OPTS没有?开大内存 既java_opts= -Xms1024m -Xmx1024m ;  java5.0默认配置    ==>升级一下到最大的小版本6.0 升级处理
      系统内存测试:
     (1)自己测试:参考tomcat,jvm,mysql优化方面的资料。测试如下操作出错:
C:\>java -Xms536870932 -Xmx536870912
Error occurred during initialization of VM
Incompatible initial and maximum heap sizes specified至强64位双CPU,原则上面来说64位的CPU应当可以用到无限大的内存了,也还是理论上的了。可以java -Xmx2000M -version这样一路加上去试试看你的可以加到多大。
     (2)工具测试:  压力测试:对应用系统进行性能采样于监控,(Wily有一套产品可以在运行期进行调优,但我没有用过),我用的P6Spy,加MS的那个压力测试工具,也有D用LoadRunner来跑一跑,在SQL语句这个地方有太多的名堂可做了。
       建议软件方面:
       a、软件配置 Apache2.2.0 + mod_ajp + jrockit-R26.0.0-jdk1.5.0_04+  Tomcat5.5.15 (启多个)+apr1.2.2 .
       b、内存建议4g以上 。 tomcat的内存参数使用 set JAVA_OPTS=%JAVA_OPTS%-Xms1024m -Xmx1024m  (内存2g的话,建议set JAVA_OPTS=%JAVA_OPTS%-Xms512m -Xmx512m).
      c、tomcat5.5版本的性能已经大幅度提高了。


     
   

posted on 2006-03-17 23:29 xnabx 阅读(424) 评论(0)  编辑  收藏 所属分类: Java

只有注册用户登录后才能发表评论。


网站导航: