Weblogic参数调优

2019-08-30 13:50

Weblogic参数调优

一、调优背景:

应银监会总会需求,需对银监会派出机构客户风险监测预警系统进行1轮剔除网络环境

的性能测试(在山东试运行阶段的性能测试,由于网络瓶颈较大,造成性能指标较差)。由于时间紧张,只是匆忙搭建了测试环境,Weblogic、DB2等的参数均是默认设置,并未进行任何调优。默认设置在系统使用人数不多的情况性能尚可,但当使用人数较多,或者进行大并发的性能测试时,则会显得捉襟见肘。

如:在本次测试过程中,在集团关联处的50并发,就会造成系统崩溃。

如图可见:在集团关联并发50的时候,队列长度已经高达103,空闲线程数已经为0,同时吞吐量极低,由此造成系统崩溃。通过分析,查找到原因在于:JVM分配内存过少;线程池、连接池里分配的线程数以及容量过低,通过调优后解决了问题

二、调优思路:

一般来讲,J2EE应用架构环境下的系统调优,首先我们一般会从应用程序出发,去审核代码,做到代码级的优化,然后再调整应用服务器(BEA WebLogic8.1)和数据库 (DB2)的参数,最后当然是调整操作系统和网络的性能(包括硬件升级)。这是一种MDA的先进做法。诚然,在许多项目中,不可能完全按照这个思路来做,我们把目标首先定位在应用系统所在

的应用服务器(BEA WebLogic8.1)上,通过对BEA WebLogic8.1的参数进行设置,使WebLogic8.1能够在最优化的环境中去运行其系统,然后对DB2数据的参数进行优化设置,最后进行性能测试再找出导致性能瓶颈所在的SQL代码或JAVA程序,考量其修改的可行性,并进行最终问题优先级认定,与瓶颈模块进行协商解决性能问题。当然,大多数时候都出现了性能问题后才想到调优,而且一般都是先进行系统参数调整,实在解决不了才会对代码进行检查。实际上,我们应当将代码级的调优放在应用设计时来做,测试生产时修改代码将是一件极其痛苦的事情。

而本次测试由于时间紧张,只对Weblogic进行了参数调优,现将调优步骤进行说明:

1.JVM调整:

(1)首先,在D:\\bea\%user_projects\\domains\\mydomain下用编译模式打开

startWebLogic.cmd,查找代码:

call \或者call \ 找到后,在相应路径用编译模式打开该文件:

(2)接着要弄清楚JDK厂商(是bea,还是sun、IBM等)

set JAVA_VENDOR=BEA(此处说明应用的为BEA的JDK)

(3)之后查找weblgoic运行模式:

set PRODUCTION_MODE=

默认是开发模式(线程计数默认为15)即为空,在上线时,应将其改为产品模式(线

程计数默认为25):

set PRODUCTION_MODE=ture

(4)然后需修改分配给JVM的内存(默认为96M): 因已确定厂商为BEA,运行模式为产品模式,所以找到: :bea

if \set JAVA_VM=-jrockit

set MEM_ARGS=-Xms1024m -Xmx1024m

set JAVA_OPTIONS=%JAVA_OPTIONS% -Xverify:none

goto continue :bea_prod_mode set JAVA_VM=-jrockit

set MEM_ARGS=-Xms1024m -Xmx1024m(此处即为分配给JVM的内存范围) goto continue

可根据系统需要,修改分配的内存数

注:如为32位的操作系统,则最大支持分配2G内存

2.线程池调整:

打开Weblogic,在路径:mydomain->服务器->myserver->右键打开“查看执行队列”?weblogic.kernel.Default 调整如下指标:

(1) 线程计数—分配给此队列的线程数,建议值为: 100

(2) 线程数增加—在出现溢出时,要添加到队列中的线程数,建议值为: 50

(3) 最大线程数—此队列可以拥有的最大线程数。此值将防止 WebLogic Server 为了响应连续出现的溢出而在队列中创建过高的线程数,建议值为:400

(4) 最小线程数—WebLogic Server 将在队列中维护的最小线程数,建议值为: 100

3.连接池调整:

打开Weblogic,在路径:mydomain>服务> JDBC 连接缓冲池> test1 调整如下指标:

(1) 初始容量—创建此 JDBC 连接缓冲池时要创建的物理数据库连接数,建议值为: 100

(2) 最大容量—此 JDBC 连接缓冲池可以包含的最大物理数据库连接数,建议值为: 150

(3) 容量增长—此 JDBC 连接缓冲池容量扩展的增量,建议值为:10

(4) Statement 缓存大小—存储在缓存中的 prepared statement 和 callable statement 数目,建议值为: 30 (此值可进一步提高系统性能,但要适中)

4.其他参数调整:

接受预备连接,默认值为: 50,根据系统运行情况,本次调整为100 5.在压力测试时,需及时查看weblogic性能表现: 路径为:mydomain> 服务器> myserver >监视>性能

(1)空闲线程数:(产品模式下)值越接近设置的最大值,性能表现越好 (2)吞吐量:吞吐量的数值越大,性能表现越好 (3)队列长度:队列长度的值越小,性能表现越好

(4)内存使用率:根据JVM值来看,不能长时间超过90%。

曲线要平滑稳定,可用内存适中,性能最佳, 如为震荡波则性能较差,需深入查找原因。

下面给介绍一下简单的调优,也是跟weblogic81不同的地方: 1)weblogic81直接在startWebLogic.sh中加入MEM_ARGS参数就可

以,在weblogic9中,需要在/bin/setDomainEnv.sh中修改MEM_ARGS参数;

2)在8.1版本中,我们可以利用console进行thread pool的配置,根

据应用的需求增加新的thread pool或者修改pool的大小。但是9.2中,console上没有提供这一功能,但是我们可以利用修改config.xml来实现这个配置。

default

100

C3Oss.Adapter.Thread.Pool 2

配完之后,重新启动,就可以看到修改的thread pool为100了

如果在启动时报错,则需要修改启动脚本startWebLogic.sh,修改如下: startWebLogic.sh

${JAVA_HOME}/bin/java ${JAVA_VM} -version if [ \echo \echo

\VA_HOME}/bin/java

${JAVA_VM}

${MEM_ARGS}

${JAVA_OPTIONS}-Dweblogic.Name=${SERVER_NAME}-Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy ${PROXY_SETTINGS}${SERVER_CLASS}\

${JAVA_HOME}/bin/java

${JAVA_VM}

${MEM_ARGS}

${JAVA_OPTIONS}-Dweblogic.configuration.schemaValidationEnabled=false-Dweblogic.Name=${SERVER_NAME}-Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy${PROXY_SETTINGS} ${SERVER_CLASS}

else echo

\

output

from

WLS

window

to

${WLS_REDIRECT_LOG}\

${JAVA_HOME}/bin/java

${JAVA_VM}

${MEM_ARGS}

${JAVA_OPTIONS}-Dweblogic.configuration.schemaValidationEnabled=false-Dweblogic.Name=${SERVER_NAME}-Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy${PROXY_SETTINGS}

${SERVER_CLASS} >\

fi

Weblogic9、10、10R3版本线程池手动调节 2011-03-29 12:18:06| 分

类: weblogic | 标签: |字号大


Weblogic参数调优.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:日语汽车类用语

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: