Weblogic参数调优

更新时间:2024-01-21 15:47:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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 | 标签: |字号大

ii. 当客户端连接weblogic

服务器时,在服务器上就监听到一个客户端的连接请求。

iii. 但是管理客户端连接请

求的任务是由操作系统来完成的,而非Weblogic。操作系统把这些连接请求存储在一个先进先出的队列中。

iv. 当队列中的连接请求达到

了队列的最大数时,Weblogic服务器所在的主机操作系统会拒绝新的连接请求。只有当队列中的连接请求和Weblogic成功建立连接后,才会使队列腾出空位,这时队列才能继续加入新的连接请求。

v. 当客户端收到类似

connection refused的信息,就表明队列已经满了,这时候可以调大Accept Backlog的值。目前在部署的过程中,一般都设置为100。

vi. Weblogic 92的位置,点击

服务器,进入服务器属性页面,点击配置,再点击调整,接受预备连接,即是。

c) Jdbc数据库连接池

i. 当操作数据库的事务并

发量很大时,需要调大JDBC连接数的最大值,否则会报得不到JDBC连接的问题。

ii. 最大值的设置不应该超

过执行队列中线程最大值的设置,更不要超过数据库中的Processes值。

iii. 一般来说,这个参数和并

发用户数有关:

1. 并发用户数在20及以下:

Initial Capacity 5

Maximum Capacity 20

Capacity Increment 2

2. 并发用户数在30~50:

Initial Capacity 10

Maximum Capacity 30

Capacity Increment 5

3. 并发用户数在60及以上:

Initial Capacity 20

Maximum Capacity 40

Capacity Increment 5 例如:

Initial Capacity 100

Maximum Capacity 100

Capacity Increment 1

Statement Cache Size 200(登陆web页面的用户数)

d) JTA

i. JTA就是Java事务管理接口,主要用

来管理EJB的事务。我们通常关注的就是事务的超时时间。

ii. 因为有些事务比较大,

如果超时时间设置过短,会造成事务处理失败并回滚。

e) LOG

i. 在Weblogic中有多个

地方会产生日志。比如:

1. 域日志:

2. 每个服务器的日志

3. 每个服务器的http日志

例如:所在域/ servers/AdminServer/logs 目录下:AdminServer.log、

access.log和xxx_domain.log

ii. 日志的调优,主要是担

心无限制的日志增长导致磁盘空间不足

1. 限制保留的日志文件数:这个选项设置生成文件的数量

不大于指定值。在weblogic8中,需要手动设置该选项,在weblogic9中,该参数默认是选中的。

2. 日志级别:这个选项控制生成日志的多少。建议weblogic8

和weblogic9中都设置成error,以减少系统I/O。

本文来源:https://www.bwwdw.com/article/0lro.html

微信扫码分享

《Weblogic参数调优.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
下载全文
范文搜索
下载文档
Top