调整WebLogic性能优化参数

时间:2022-09-20 20:44:57

1.      设置WebLogic的启动参数

l  域配置的相关信息所在位置:

MW_HOME\user_projects\domain\domain-name

l  指定该域启动使用的JDK所在位置:

set JAVA_HOME=C:\Oracle\Middleware\jdk160_11

l  指定Java内存堆栈信息

 "%JAVA_HOME%\bin\java" -server –Xms1024m –Xmx1024m -classpath %CLASSPATH% -

 

2.      管理线程

在WebLogic 11g中建议采用配置WorkManager进行自动线程管理。

l  WorkManager数量选择

根据应用的不同SLA的要求,配置响应数量的WorkManager。

1.      调整网络I/O参数

l  网络通道处理线程设置:

在能使用Native I/O的平台上尽量使用Native I/O,使用Java线程进行网络操作会降低WLS性能。如下链接提供支持Native I/O的平台列表:

http://www.oracle.com/technology/software/products/ias/files/fusion_certification.html.

 

针对计算密集型的应用,可以设置如下启动参数:

-Dweblogic.socket.SocketMuxer.DELAY_POLL_WAKEUP=xx

其中,xx 是以毫秒为单位的时间值,表示在检查是否有数据前的延迟时间。默认值是0,表示没有等待延迟。

l  配置多网络通道:

如果网络条件许可,可以为每个WLS实例配置多个通道,提高访问性能:

在客户端代码中采用类似集群的URL访问写法:

t3://<ip1>:<port1>,<ip2>:<port2>

l  调整Chunk大小,包括:

ü  weblogic.Chunksize

ü  weblogic.utils.io.chunkpoolsize

ü  weblogic.PartitionSize

l  调整Accept Backlog

 

1.      设定编译选项

l  设置JSP预编译:

ü  手动使用WLS编译器,如weblogic.jspcappc

ü  自动使用weblogic.xml中的precompile选项,处于ON,则每次重新启动服务器时,都将重新编译JSP

例如:

<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90">

  <jsp-descriptor>

    <precompile>true</precompilee>

  </jsp-descriptor>

</weblogic-web-app>

 

2.      配置WebLogic集群

l  在大内存和多CPU(或多核)服务器上运行多个实例

ü  每个实例对应的CPU个数应该为18个,通常2个为佳,需要通过测试找出应用程序对应的合适值

ü  每个实例对应的内存不应该最大,尤其在32位系统上,避免因为太大内存堆的垃圾回收造成较长的应用停顿时间

l  配置集群内复制 HTTP 会话状态

会话持久性通过weblogic.xml部署描述符文件中的<session-descriptor>元素配置的,例如:

<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90">

  <session-descriptor>

    <persistent-store-type>replicated</persistent-store-type>

  </session-descriptor>

</weblogic-web-app>

ü  HTTP Session 复制方式:

²  文件

²  数据库(JDBC-based persistence,最可靠、WAN复制需要配置)

²  内存复制(replicated_if_clustered或者replicated

这种配置下要求应用必须部署到集群中所有节点

ü  异步HTTP Session复制方式(提高性能):

²  设置PersistentStoreType为async-replicated 或async-replicated-if-clustered

²  设置PersistentStoreType 为 async-jdbc

3.      监控WebLogic域的运行情况

l  通过WebLogic管理控制台监控WebLogic域的运行情况

l  通过WebLogic扩展控制台监控WebLogic域的运行情况

l  通过JMX监控WebLogic域的运行情况

l  使用JRockit Flight Recorder监视WebLogic的运行情况