八、设置Java编译器
编译JSP Servlet的标准Java编译器是javac。你可以把java编译器设置为si或jikes代替javac,这样能极大的提高性能。下面讨论设置步骤及其要考虑的事项。
8.1通过控制台改变编译器
1. 启动服务器,访问控制台。
2. 展开左边面板Servers节点。
3. 点击要配置的服务器实例的名称。
4. 选择配置(Configuration)――>常规(General),在Java Compiler编辑框输入编译器的完全路径。如:c:\visualcafe31\bin\sj.exe
5. 点击高级选项(Advanced Option)――>Show,显示其他的属性。
6. 用添加(Append)把完全路径通过Classpath框输入到JRE rt.jar 库。如:BEA_HOME\jdk141_02\jre\lib\rt.jar
7. 点击应用。
8. 重启服务器。
8.2在Weblogic.xml文件中设置编译器
n 使用compileCommand参数指定Java编译器。
n 使用procompile参数配置WebLogic,在启动WebLogic时预编译JSP。
8.3编译EJB容器类
使用Weblogic.appc的功能去编译EJB2.0和1.1容器类。如果编译Jar文件部署EJB容器,你必须使用weblogic.appc生成容器类。默认情况下,EJB使用javac编译器。为了得到跟好的性能,使用-compiler标志指定不同的编译器(如Symantec公司的sj)
8.4在UNIX环境下编译
在UNIX机器上编译JSP文件,如果收到下列错误消息:
failed:java.io.IOException:Not enough space
试试下列一些或所有的解决方法:
n 如果你只有256MB的内存,增加更大的内存。
n 提高文件描述文件的限制,如:
set rlim_fd_max=4096
set rlim_fd_cur=1024
n 启动JVM时,用-native标志来使用自有的线程。
九、使用WebLogic集群提高性能
WebLogic集群是指一组WebLogic实例在一起提供具有防过载和自有复制的功能,以用一个域为所有客户支持可伸缩的高可用性运行。集群对于客户是一个单一的服务器,但实际上是一组服务器来提高可靠性和可伸缩性。
9.1可伸缩性和高的可用性
可伸缩性是系统增加一个或更多部件作为系统资源的能力。很典型的是,这些部件使并发用户得到支持,使并发事务能在特定的时间单位能被处理。
假定应用程序设计良好,它完全可以简单的增加更多的资源来提高性能。为了增加WebLogic处理的负荷量,只需增加一个WebLogic实例到你的集群――不需改变应用程序。集群提高两个关键的好处:可伸缩性和可用性,这是单一服务器无法比拟的。
WebLogic集群给J2EE带来了可伸缩性和高的可用性,而且对于应用程序的开发者是透明的。可伸缩性扩展了中间层的能力,超过了单一的WebLogic服务器或单一的计算机能处理的。集群成员唯一的限制是所有WebLogic必须要用IP多点传送通信。新的WebLogic能动态的增加到集群,以增加处理能力。
WebLogic集群保证高的可用性是通过多个服务器的冗余,减少客户的请求失败。集群中多个服务器能提供同一服务。如果一个服务器停止运行,另一个能接替运行。这种功能为客户增加了可用性。
警告:如果你要解决应用程序和环境的颈瓶问题,增加额外的服务器到集群,应该提供线性的可伸缩性。定基准和初始配置测试运行时,在移到集群环境之前,应把应用隔离在单独的服务器上测试。
9.2在多CPU机器上运行多服务器实例,应考虑的性能问题
多处理器的机器上,必须考虑群集WebLogic实例数应与CPU的数量成比例。因为WebLogic没有内置限制的服务器实例数位于集群里,规模大的、多处理器服务器,如Sun公司的Sun Enterprise 10000,有着当作非常大的集群或多集群主机的潜能。
在决定最佳的服务器与CPU比例前,彻底测试你的应用程序并确定如下:
n 网络要求 如果你发现Web 应用程序是主要受网络I/O限制,在增加CPU数前,考虑测试网络的吞吐量。如果实际是网络I/O限制,安装一个更快的网络接口卡(NIC)可以提供性能,而不是增加额外的CPU,因为在等着读socket时,更多的CPU会处于闲置。
n 磁盘I/O要求 如果你发现Web应用程序主要受磁盘I/O限制。在配置额外的CPU前,就应该考虑增加磁盘转速或单个磁盘。
总之,在配置额外的CPU前,必须确定Web应用程序是受CUP限制,而不是受网络或磁盘I/O限制。
对于受CPU限制的应用,最初在每个CPU上对一个WebLogic实例进行性能测试。如果CPU利用率是一致的或者接近100%,然后增加CPU比重(例如,为一个WebLogic实例配置两个CUP),记住在产品模式下,应该有一些空闲的CPU周期存在去执行管理任务。
虽然Web应用程序的处理需求变化多端,但BEA公司发现WebLogic实例与CPU最理想的比例是1:2。
十、监视WebLogic域
监视WebLogic域的健康状况和性能的工具是管理控制台。通过控制台,你可以观察到WebLogic资源的状态和统计信息,如服务器,HTTP,JTA 子系统,JNDI,安全,CORBA连接池,EJB,JDBC以及JMS。
举个例子,在Server――>Monitoring――>Performance为当前服务器实例提供了与等待和运行状态的请求有关的性能参考。它包括下列信息:
n 队列中空闲线程数。
n 队列中等待时间最长的请求。
n 吞吐量,根据已经处理的请求数来衡量的。
n 队列长度,根据队列中等待请求数来衡量的。
n JVM堆还有的内存量。作者: bluemoon1999 时间: 2009-3-25 17:15
好多年前(1.5年),我就问过这样的问题.
当时没人回答,现在谢谢了~~作者: nataliedu 时间: 2009-7-27 16:36
好贴。。。顶