Weblogic 10.3.1.0 性能调优方案
V1.0
一、方案背景
本文描述的在Suse Linux Enterprise Server11 操作系统下Weblogic 10.3.1.0 性能调优,硬件的系统比较差,是由8core CPU,16G内存分离4个操作系统,每个操作系统是2core CPU,4G的内存,硬件系统的配置不是很高。
由于新框架在Weblogic10 下运行速度比较缓慢,需要对weblogic 容器的一些参数进行重新设置,以便提高新框架的运行速率,新框架包括登录页面、角色管理、管理员管理、日志管理、模板管理以及字典库管理,使用框架的技术是SSH3。
安装完Weblogic 10.3.1.0后,Weblogic的一些参数都是默认参数,在linux中需要对一些参数进行重新设置。
二、优化部分
本次优化,主要以服务器启动、参数设置、应用登录进行优化
2.1、创建域慢启动慢的特征:创建域到70%时,进程长时间等待,创建
域启动Weblogic的时候也是长时间等待。
原因:线程挂在security相关的随机数生成上面,由于JDK的bug导致而成的。
解决办法:修改Linux Weblogic上的jdk
$JAVA_HOME/jre/lib/security/java.security文件
将securerandom.source = file:/dev/urandom修改为:
Securerandom.source = file:/dev/./urandom
这样可以解决任何一个域weblogic启动慢的问题
由于windows的实现机制和linux不一样,所以不存在启动慢的问题
2.2、修改JAVA_VM、Cache等相关参数
在$DOMAIN_HOME/bin/setDomainEvn.sh中,修改如下参数:if [ "${JAVA_VENDOR}" = "Sun" ] ; then
WLS_MEM_ARGS_64BIT="-Xms256m -Xmx512m"
export WLS_MEM_ARGS_64BIT
WLS_MEM_ARGS_32BIT="-Xms512m -Xmx512m"
export WLS_MEM_ARGS_32BIT
else
WLS_MEM_ARGS_64BIT="-Xms512m -Xmx512m"
export WLS_MEM_ARGS_64BIT
WLS_MEM_ARGS_32BIT="-Xms512m -Xmx512m"
export WLS_MEM_ARGS_32BIT
fi
修改为:
if [ "${JAVA_VENDOR}" = "Sun" ] ; then
WLS_MEM_ARGS_64BIT="-Xms512m –Xmx1024m"
export WLS_MEM_ARGS_64BIT
WLS_MEM_ARGS_32BIT="-Xms512m –Xmx1024m"
export WLS_MEM_ARGS_32BIT
else
WLS_MEM_ARGS_64BIT="-Xms512m –Xmx1024m"
export WLS_MEM_ARGS_64BIT
WLS_MEM_ARGS_32BIT="-Xms512m –Xmx1024m"
export WLS_MEM_ARGS_32BIT
fi
修改如下参数:
MEM_PERM_SIZE_64BIT="-XX:PermSize=256m"
export MEM_PERM_SIZE_64BIT
MEM_PERM_SIZE_32BIT="-XX:PermSize=128m"
export MEM_PERM_SIZE_32BIT
修改为:
MEM_PERM_SIZE_64BIT="-XX:PermSize=512m"
export MEM_PERM_SIZE_64BIT
MEM_PERM_SIZE_32BIT="-XX:PermSize=512m"
export MEM_PERM_SIZE_32BIT
修改如下参数:
MEM_MAX_PERM_SIZE_64BIT="-XX:MaxPermSize=256m"
export MEM_MAX_PERM_SIZE_64BIT
MEM_MAX_PERM_SIZE_32BIT="-XX:MaxPermSize=128m"
export MEM_MAX_PERM_SIZE_32BIT
修改为:
MEM_MAX_PERM_SIZE_64BIT="-XX:MaxPermSize=512m"
export MEM_MAX_PERM_SIZE_64BIT
MEM_MAX_PERM_SIZE_32BIT="-XX:MaxPermSize=256m"
export MEM_MAX_PERM_SIZE_32BIT
2.3、Weblogic参数优化
base-domain –> services -> setting for AdminServer ->Configuration ->Tuning 设置NativeIOEnabled 设置为True
注意:如果在config.xml中有该选择,可以手动修改
2.3.1、调优执行队列线程:
a.修改默认执行线程数
在这里,执行队列的线程数表示执行队列能够同时执行的操作的数量。
但是此值不应该设置越大越好,应该恰到好处的去设置它,太小了,执行队列中将会积累很多待处理的任务,太大了,则会消耗大量的系统资源从而影响整体性能。
在产品模式下默认为25个执行线程
理想的默认执行线程数是由多方面的因素决定的,比如机器CPU性能、总体体系架构、I/O、操作系统的进程调度机制、JVM的线程调度机制。
随着CPU 个数的增加,WebLogic可以近乎线性地提高线程数。
线程数越多,花费在线程切换的时间也就越多;线程数越小,CPU可能无法得到充分的利用。
为获取一个理想的线程数,需要经过反复的测试。
在测试中,可以以25*CPU个数为基准进行调整。
当空闲线程较少,CPU利用率较低时,可以适当增加线程数的大小(每五个递增)。
对于PC Server和Windows 2000,则最好每个CPU小于50个线程,以CPU利用率为90%左右为最佳。