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中,需要在
2)在8.1版本中,我们可以利用console进行thread pool的配置,根
据应用的需求增加新的thread pool或者修改pool的大小。但是9.2中,console上没有提供这一功能,但是我们可以利用修改config.xml来实现这个配置。
配完之后,重新启动,就可以看到修改的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。
正在阅读:
Weblogic参数调优01-21
创先争优1000字12-24
换位思考优秀高三作文(6篇)03-27
六年级下册语文单元测试-第三单元B卷|苏教版(含答案) (1)06-25
小学一年级上数学期末试题10-24
党员干部在2023年全省乡风文明建设工作会议上的讲话范文03-23
脉冲激光焊接工艺03-20
空军重点目标警卫执勤的特点与方法11-27
中职学校语文(基础模块)下册期末试卷含答题卡、答案08-25
锅炉安装监督检验规则09-06
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- Weblogic
- 参数
- 江苏省常州市2018届九年级《数学》上学期十月月考试题新人教版(含答案) - 图文
- 数学建模实验报告4
- 八年级下数学《全等三角形》
- Windows文件共享原理
- 495柴油机设计说明书 - 图文
- 数学09级1班闻晶晶外文文献翻译
- 垃圾分类的调研报告
- 大学生物统计学 - 相关习题
- 工程质量创优策划方案
- 敏捷供应链下物流管理
- CAD LSP函数集全表
- 氧化还原反应基本规律应用
- 爱国卫生工作会议纪要
- 旅游专业课程体系改革 综述
- 高三 高中物理竞赛 动量和冲量(无答案)
- 安卓手机通过笔记本上网(XP或者Windows - 7) - 图文
- 康师傅3+2饼干策划书
- 2010年度浙江省污染源自动监控系统运行管理考核细则(修订)
- 洛奇魔法释放卷-接头
- 直线上的相遇与追及问题