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.jspc
或
appc
ü
自动使用
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
个数应该为
1
~
8
个,通常
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的运行情况