weblogic压力测试中的性能调试手册
WebLogic 系统调优操作指导书

WebLogic Server 8.1调优操作指导书拟制: Prepared by 杨机智59949日期:Date2006-11-07审核: Reviewed by 日期:Date审核: Reviewed by 日期:Date批准: Granted by日期:Date华为技术有限公司Huawei Technologies Co., Ltd.版权所有侵权必究All rights reserved修订记录Revision record目录Table of Contents1操作系统调优 (8)1.1操作系统调整 (8)1.2Linux相关参数调整 (8)1.3Windows相关参数调整 (9)2应用服务器调优 (9)2.1JVM调优 (9)2.1.1垃圾收集和堆大小 (9)2.1.2jRockit调优 (10)2.2Server调优 (11)2.2.1尽量使用本地I/O库 (11)2.2.2调整默认执行线程数 (12)2.2.3调整连接参数 (13)2.2.4创建新的执行队列 (14)2.3JDBC调优 (15)2.3.1调整连接池配置 (15)3性能监控和性能分析 (17)3.1性能瓶颈 (17)3.2操作系统监控 (17)3.3数据库监控 (18)3.4WebLogic监控 (19)3.4.1JVM监控 (19)3.4.2Console监控 (19)4常见问题解决方法 (20)4.1Apache出现连接拒绝 (20)4.1.1现象描述 (20)4.1.2原因分析 (20)4.1.3处理方法 (20)4.2启动Apache提示MaxClients超过服务器最大限制 (21)4.2.1现象描述 (21)4.2.2原因分析 (21)4.2.3处理方法 (21)表目录List of Tables表1 XX表Table 1 XX (21)图目录List of Figures图1 XX图Figure 1 XX (22)WebLogic Server 8.1调优操作指导书关键词Key words:WebLogic Server,调优摘要Abstract:本文介绍了如何进行WebLogic Server 8.1调优缩略语清单List of abbreviations:1 操作系统调优1.1 操作系统调整交换区(swap area)的大小。
weblogic性能优化

Weblogic性能调优实用手册1.尽量使用池资源。
Weblogic的池资源有很多种,这里介绍两种操作简单对系统性能提升比较大的两种池资源的调优方法:Thread pool (线程池)和JDBC connection pool (连接池)调优。
a)线程调优一般经验值为cpu个数乘15,同时将线程增量设为0。
例如一台服务器有2个cpu则,则线程数设置为2*15 =30个,线程增量设为0。
在服务器--〉配置--->高级--->最下边的配置执行队列进行线程调优。
在上图中选择执行队列weblogic.kernel.Default,进行线程调优配置,如下图:b)连接池调优基本准则为:连接数〉线程数然后再根据实际用户情况配置连接数。
在服务→JDBC→连接缓冲池中选择连接,如下图:例如一台服务器有两个cpu线程数设置为30,有60个用户使用此网络应用那么,初始连接数可以设置为30(连接数在30至60之间可以保证每一个线程至少有一个连接,没有线程空闲),增量可以设为5。
线程池资源可能导致应用系统运行速度慢,服务器资源没有得到有效利用。
JDBC连接池设置设置不正确会导致用户数增多时系统出现无法响应的情况。
2.内存调优内存应当根据不同的应用程序来设置,没有特殊要求则经验值为1G。
不正确设置内存可能导致的问题有a)应用服务经常出现内存溢出(Out Of memory),须重起应用。
b)Java虚拟机频繁回收内存,导致weblogic应用运行速度慢。
3.统计系统专用。
优化JTA时间不正确设置可能导致的问题有:报表发布失败(非常严重)4.错误检查方法:a)应用出现问题的时候,在weblogic应用程序窗口下使用ctrl+break的键盘组合,收集应用程序运行信息,方便查找程序错误。
b)查看应用程序内存使用server- monitoring比较优秀的内存使用情况应该是:增长减少比较平稳。
比较差的内存使用情况是:突然增减。
Weblogic参数调优

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代码或JA V A程序,考量其修改的可行性,并进行最终问题优先级认定,与瓶颈模块进行协商解决性能问题。
当然,大多数时候都出现了性能问题后才想到调优,而且一般都是先进行系统参数调整,实在解决不了才会对代码进行检查。
实际上,我们应当将代码级的调优放在应用设计时来做,测试生产时修改代码将是一件极其痛苦的事情。
而本次测试由于时间紧张,只对Weblogic进行了参数调优,现将调优步骤进行说明:1.JVM调整:(1)首先,在D:\bea\user_projects\domains\mydomain下用编译模式打开startWebLogic.cmd,查找代码:call "%WL_HOME%\common\bin\commEnv.cmd"(windows)或者call "%WL_HOME%\common\bin\commEnv.sh"(linux/aix)找到后,在相应路径用编译模式打开该文件:(2)接着要弄清楚JDK厂商(是bea,还是sun、IBM等)set JA V A_VENDOR=BEA(此处说明应用的为BEA的JDK)(3)之后查找weblgoic运行模式:set PRODUCTION_MODE=默认是开发模式(线程计数默认为15)即为空,在上线时,应将其改为产品模式(线程计数默认为25):set PRODUCTION_MODE=ture(4)然后需修改分配给JVM的内存(默认为96M):因已确定厂商为BEA,运行模式为产品模式,所以找到::beaif "%PRODUCTION_MODE%" == "true" goto bea_prod_modeset JA V A_VM=-jrockitset MEM_ARGS=-Xms1024m -Xmx1024mset JA V A_OPTIONS=%JA V A_OPTIONS% -Xverify:nonegoto continue:bea_prod_modeset JA V A_VM=-jrockitset MEM_ARGS=-Xms1024m -Xmx1024m(此处即为分配给JVM的内存范围)goto continue可根据系统需要,修改分配的内存数注:如为32位的操作系统,则最大支持分配2G内存2.线程池调整:打开Weblogic,在路径:mydomain->服务器->myserver->右键打开“查看执行队列” weblogic.kernel.Default调整如下指标:(1) 线程计数—分配给此队列的线程数,建议值为: 100(2) 线程数增加—在出现溢出时,要添加到队列中的线程数,建议值为: 50(3) 最大线程数—此队列可以拥有的最大线程数。
WebLogic Server 性能及调整-调整 WebLogic 消息传递桥

WebLogic Server 性能及调整-调整WebLogic 消息传递桥以下部分提供有关用于提高消息传递桥性能的各种方法的信息:▪最佳实践▪更改批处理大小▪更改批处理间隔▪更改服务质量▪使用多个桥实例▪更改线程缓冲池大小▪避免持久订阅▪用消息传递桥的源或目标共同定位消息传递桥▪更改“已启用异步模式”特性最佳实践▪如果远程目标的可用性已经很高,则避免使用消息传递桥。
JMS 客户端可直接发送到远程目标。
请在远程目标可用性不高的情况下使用消息传递桥,例如网络不稳定,或维护计划不同。
▪向远程目标转发消息时,要使用性能较高的JMS SAF 功能,不要使用消息传递桥。
一般而言,JMS SAF 代理要比消息传递桥快得多。
以非持久性恰好一次模式发送消息时的配置是一个例外。
注意:向外部目标和WebLogic 9.0 之前版本中的目标存储转发消息时,仍需使用消息传递桥。
更改批处理大小将“已启用异步模式”特性设置为false,并且服务质量为“恰好一次”时,Batch Size特性可用于通过增加每个事务(批处理)的消息数来减少事务提交数。
桥实例的最佳批处理大小取决于使用的JMS 提供程序、硬件、操作系统和应用程序环境中的其他因素的组合。
请参阅“管理控制台联机帮助”中的配置事务属性。
更改批处理间隔将“已启用异步模式”特性设置为false,并且服务质量为“恰好一次”时,BatchInterval特性用于调整桥在转发批处理消息之前等待达到批处理限量的时间长度。
桥实例的最佳批处理间隔取决于使用的JMS 提供程序、硬件、操作系统和应用程序环境中的其他因素的组合。
例如,如果队列不是很忙,则桥可能会频繁停止转发,以便等待达到批处理限量,这表明需要减小BatchInterval特性的值。
请参阅“管理控制台联机帮助”中的配置事务属性。
更改服务质量“恰好一次”服务质量的效果可能显著高于或低于“至多一次”和“至少一次”。
使用恰好一次服务质量时,桥必须向两个JMS 服务器经历两个阶段的提交以便确保事务语义,此操作的开销可能非常大。
weblogic参数配置和调优

请求超时处理
博客园 用户登录 代码我 登录 第三方登录/注册 没有账户, 立即注册
weblogic参 数 配 置 和 调 优
weblogic的执行线程数配置 判断是否存在线程等待:在WebLogic的控制台的myserver中的Monitoring页面下的Performance页面中,Queue Length是否等于0。 通过config.xml配置文件修改线程数(修改后重启weblogic)。
Weblogic性能调优经验

Weblogic性能调优经验WEBLOGIC性能调优方案1.查看当前线程池大小:登录WEBLOGIC控制台,选择服务器-某服务器-监视-性能,可查看到当前最大线程数量。
由于WEBLOGIC9取消了在页面进行调整线程大小的功能,需要在后台进行修改。
2.修改线程池大小:进入服务器的目录D:\bea\user_projects\domains\base_domain\config,使用编辑器打开config.xml文件,找到如下段落:<server><name>AdminServer</name><listen-address>168.5.130.34</listen-address>z</server>在</server>上面添加如下两行:默认10<self-tuning-thread-pool-size-min>1000</self-tuning-thread-pool-siz e-min><self-tuning-thread-pool-size-max>1000</self-tuning-thread-pool-siz e-max>添加后的结果:<server><name>AdminServer</name><listen-address>168.5.130.34</listen-address><self-tuning-thread-pool-size-min>1000</self-tuning-thread-pool-size-min><self-tuning-thread-pool-size-max>1000</self-tuning-thread-pool-size-max></server>按上面的步骤,继续找到ProxyServer,以及所有MANAGE受管机的<server>段落,分别添加上面的两行语句。
weblogic 性能调优

�
建议值:200
b) 设定执行队列的溢出条件;
通过启动管理控制台,在域(如:mydomain)> 服务器 > server实例(如:myserver)> Execute Queue > weblogic.kernel.Defalt > 配置下面几项:
队列长度:此值表示执行队列中可容纳的最大请求数,默认值是65536,不要手动改变此值。
通过启动管理控制台,在域(如:mydomain)> 服务器 > server实例(如:myserver)>配置 > 调整下可配置“接受预备连接”。
5、减少动态jsp载入次数
通过启动管理控制台,在域(如:mydomain)> 部署 >web应用程序模块 > 配置 > 描述符 > 下可配置
Servlet 重新加载检查(秒): 180
weblogic 性能调优:
1、找到startWebLogic.cmd文件,在
%JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS% =%SERVER_NAME% -Dweblogic.ProductionModeEnabled=%PRODUCTION_MODE% -Djava.security.policy="%WL_HOME%\server\lib\weblogic.policy" weblogic.Server
3、调优执行队列线程;
a) 修改默认执行线程数
通过启动管理控制台,在域(如:mydomain)> 服务器 > server实例(如:myserver)> 监视 > 性能中监控最大负载时执行队列的吞吐量和队列中的等待请求数,据此确定理想的数值。
weblogic调优参数及监控指标

weblogic调优参数对Weblogic的调优主要从SEVER、ExecuteQueue、JDBC等几个方面的相关参数进行调优:一、SERVER在mydomain->Servers->myserver->Configuration->Tuning->“Enable Native IO”中: 1、Native IOEnabledTRUE,表示该Server使用本地I/O2、SocketReaders设置在执行线程中专用做Socket Readers的百分比3、Maximum Open Sockets最大打开Socket数4、Stuck Thread MaxTime堵塞线程时间,超过这个时间没有返回的执行线程,系统将认为是堵塞线程如果weblogic认为某个队列中的所有的线程全部堵塞的话,weblogic将会增加执行线程的数量。
注意:执行线程的数量一旦增加,目前weblogic不会去减少他,如果增加了一些线程以后再次出现overflow的警告,weblogic会继续增加执行线程的数量,一直到达到上限为止。
5、Stuck Thread Timer Interval系统检查堵塞线程的时间间隔6、Low Memory GC Threshold当可用内存小于该百分比时,垃圾回收启动7、Low Memory Granularity Level当两次检测的可用内存变化超过该百分比时,垃圾回收启动8、Low Memory Sample Size在一次检测中的取样次数9、Low Memory Time Interval检测间隔时间10、Accept Backlog等待队列中最多可以有多少TCP连接等待处理,如果在许多客户端连接被拒绝,而在服务器端没有错误显示,说明该值设得过低。
如果连接时收到connection refused消息,说明应提高该值,每次增加25%二、ExecuteQueue在mydomain->Servers->myserver ->Monitoring->Monitor all Active Queues... ->Configuration->weblogic.kernel.Default->1、ThreadCount服务器初始创建的执行线程的数量,设置原则:增大机器的最大并发线程数使处理器利用率达到最大。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.1.1Oracle数据库设置1.【PGA】24-》602.【SGA】shared_pool_size=48,803.【SGA】高速缓存区:24,404.【SGA】java池:30-》0(8)5.会话150-》1000.6.游标300-》1000.1.1.2Jar包设置:1、Log4j删除日志,加“#”2、DynamicDao删除system.Out SQL1.1.3Weblogic设置1.1.3.1 内存大小setDomainEnv.cmdif "%JAVA_VENDOR%"=="Sun" (set WLS_MEM_ARGS_64BIT=-Xms256m -Xmx512mset WLS_MEM_ARGS_32BIT=-Xms256m -Xmx1524m 1.1.3.2 域JTA 配置超时秒数:360事务超时数1001.1.3.2.1服务器上资源的最大请求数(每个服务器所允许的最大并发资源请求数500)事务超时数100服务器:接受预备连接:6001.1.3.3 域Web应用程序设置1.1.3.4 J DBC连接池域-》服务-》JDBC——》数据源连接池1、语句缓存大小1002、不支持全局事务3、初始容量:54、最大容量:100(已经修改为500)5、容量增长:56、收缩频率:4507、语句超时:10008、非活动连接超时1001.1.3.5 部署监视部署-》监视-》JDBC1.1.3.6 S ervers连接池配置服务-》JDBC-》数据源-》配置-》连接缓冲池1.1.3.7 S erver管理控制服务器-》AdminServer(管理)-》控制服务器-》AdminServer(管理)1.1.3.8 J ava虚拟机内存回收服务器-》AdminServer(管理)-》选中-》监视-》性能-》垃圾回收内存(Java 虚拟机内存利用率统计信息)1.1.3.9 监视JDBC1.1.3.10 监视JTA1.1.3.11 服务器参数调整(接受预备连接:600)服务器-》AdminServer(管理)-》选中-》调整1.1.3.12 最长线程阻塞时间服务器-》AdminServer(管理)-》选中-》超载1.1.3.13 BEA-000449 Closing socket as no data read from it1、Set the parameter -Dweblogic.client.socket.ConnectTimeout=XXX, in the start-up script of the server which you are seeing this issue under JAVA_OPTIONSNote: Where "XXX" is the value in ms.Example:-Dweblogic.client.socket.ConnectTimeout=5002、Server -> Protocols (tab) -> HTTP (sub-tab) -> Duration(持续时间)1.1.3.14 BEA-310003 Free memory in the server... There isdanger of OutOfMemoryErrorThanks for the Hint.I found that changing the "Low Memory Sample Size" from "10" to "120" solved my problem.When WebLogic uses JRockit, it know when the GC runs and cleans up memory. It samples the free heap at this time (because all of the garbage has been collected and memory is as empty as it is going to get) and if the average over the hour is < 5% free, then you get an alert.Unfortunately I'm using the IBM AIX JVM. WebLogic can't tell when IBM's JVM is doing a GC, so it just samples heap free at a regular intervals. Since there are only 10 samples (by default) in a hour, if it gets unlucky a few times you will get an out of memory alert when there is nothing to be worried about.I boosted the samples to 120/hour, so it gets a better picture of the amount of heap that is free on average. Now that a few bad samples can't drag the value over the 5% limit, I am much less likely to get an alert.The navigation path in WebLogic 10.3 to Low Memory Sample Size is:Environment -> Servers -> "the server you wish to change" -> Configuration -> Tuning After making the change you have to restart the server.It also a good idea to check that the change worked (I lost my change during the restart somehow the 1st time I did it).1.1.3.15 [转1]常用weblogic性能调优方法常用weblogic性能调优方法 (2007-05-22 12:23:57)1.设置最大线程(并发)数量myserver|Configuration|Monitoring|performance可以观察整体性能Idle Threads数量少,Queue Length比较大说明存在多并发,而且CPU资源比较空闲需要增加线程数量,具体方法myserver|Configuration|Monitoring|performance|GeneralMonitor all Active Queues... 调整当前Thread Count个数,一般量大得可以设置到100。
【备注版本9.0:weblogic.kernel.default其实是一个weblogic的核心参数,设置的值就是weblogic用来响应客户端请求的线程数量。
也就是说,一个用户登陆应用系统进行某操作,则WebLogic将从weblogic.kernel.default中分配一个线程给该用户。
默认情况下,这个参数值是40。
比如对大的企业应用,同一时间登陆操作系统的用户非常多,则40个线程就显得太少了。
同时,如果你的应用程序设计得不好,造成很多操作速度非常慢,因为WebLogic 要等待你一个操作完成之后,才进行线程的回收处理,如果同一时间有很多线程在执行非常慢的操作,这也会引起线程数量不够的问题。
具体的表现就是在WebLogic的控制台的myserver中的Monitoring页面下的Performance 页面中,Queue Length显示不是等于0,图像可能是一个曲线。
Queue Length这个参数的意义就是“在等待队列里的请求数”。
正常情况下,应该是0,图像是一个水平的横线。
也就是没有客户端的请求会等待,都能及时的得到系统的处理。
如果确认是因为用户过多的原因需要增大weblogic.kernel.default参数的值,我们怎么修改?进入WebLogic控制台——左边窗口的mydomain——servers——点击myserver——Configuration——General——点击Advanced Options的Show链接——最下面的Configure Execute Queues 链接——weblogic.kernel.Default链接——Thread Count参数。
的却是隐藏的比较深。
修改Thread Count的值,然后重启WebLogic就可以生效了。
】【备注版本10.0:根据客户的要求,我们在webblogic10上测试wicket框架的性能。
需要设置并发线程数设置。
根据网上资料,需要在config.xml的server部分配置修改,如下:<server><name>AdminServer</name><execute-queue><name>default</name><thread-count>200</thread-count><threads-maximum>400</threads-maximum></execute-queue><use81-style-execute-queues>true</use81-style-execute-queues><listen-address></listen-address></server>请不要画蛇添足,否则,webapplications跑不起来的,配置execute-queue的基本属性就行了。
我中途也吃过这个亏。
】2.设置内存在启动脚本中 set MEM_ARGS=-Xms512m -Xmx1000m 即最小内存和最大内存.不宜太小也不宜太大3.最大socket连接数(出现connection refused可以增加次数量)myserver|Configuration|Tuning |Accept Backlog一般比Thread Count稍微大一点4.连接池得最大最小格式设置成相同,并且不少于50个(一般和Thread Count差不多).5.x86PcSvr环境下采用jrockit(BEA专门针对x86做了性能优化得JDK)性能有显著提高20%.以下假设d:\bea\jrockit81sp1_141_03是jrockit的路径。