Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2617746
  • 博文数量: 323
  • 博客积分: 10211
  • 博客等级: 上将
  • 技术积分: 4934
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-27 14:56
文章分类

全部博文(323)

文章存档

2012年(5)

2011年(3)

2010年(6)

2009年(140)

2008年(169)

分类: 系统运维

2009-11-23 10:13:30

  部署在WAS上的J2EE应用程序,其性能是由多个因素决定的。例如网络、数据库、内存分配、WAS服务器的配置以及应用程序的设计。对于一个标准的J2EE应用,一个请求到来时,往往需要经过多次转发:网络 > Web服务器Web容器 > EJB容器 > 数据库。而每一次转发,都可能造成请求处理的瓶颈,使得应用程序整体性能下降。如果我们把每一次转发的待处理资源都看成一个队列,如图3:



待处理资源队列

对于WAS调优,要记住的一个基本原则就是,使得在队列中等待的请求的数量最小化。在实践中我们发现,为了达到这个目的,最有效的配置方式就是使得队列成为一个“漏斗”。也就是说,越靠近客户端的队列,其容量越大,而后面的队列,其容量要略小于或等于前面的队列。按照这个原则,调优的基本步骤如下:

  • 设置的是Web Server的最大并发用户:
    • 这个设置是在conf/httpd.conf这个文件里面配置的。在Unix系统中,对应的属性是MaxClient;在Windows系统中,对应的属性是ThreadsPerChild。
  • 设置Web Container的最大、最小并发用户:
    • 在管理控制台中点击应用程序服务器 > server1 > 线程池 >WebContainer,根据观察的性能情况和应用情况输入合适的最小、最大进程数。
  • 对象请求代理(ORB)的线程池大小:
    • 在管理控制台中点击应用程序服务器 > server1 > ORB 服务 > 线程池,根据观察的性能情况和应用情况输入合适的最小、最大进程数。
  • 设置数据库的连接池属性:
    • JDBC 提供者 >数据库JDBC驱动名称 > 数据源 > 数据源名称> 连接池,根据观察的性能情况和应用情况输入合适的最小、最大连接数。
  • JVM堆参数设置的性能调优:
    • 应用程序服务器 > server1 > 进程定义 > Java 虚拟机,根据硬件物理内存和应用情况输入合适的初始堆大小、最大堆大小。
  • ORB参数调用方式的性能调优:
    • 应用程序服务器 > server1 > ORB 服务>选中按引用传递。
  • 关闭动态加载开关:
    • 企业应用程序 > 应用名称 > 关闭启动类重新装入开关。
    • 关闭会话序列化,应用程序服务器 > server1 > 会话管理 > 分布式环境设置 > 分布式会话选择无即可。

这个调优的步骤只是涉及了利用WAS服务器参数的调整来优化应用程序的性能,实际上性能的好坏很大部分是取决于应用的设计。好的性能源自好的代码设计。一般说来,性能调优大概可以提高10%-40%效率,而糟糕的代码设计却会使得性能几倍的下降。

阅读(1955) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~