weblogic压力测试中的性能调试手册
- 格式:doc
- 大小:10.74 MB
- 文档页数:33
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性能调优实用手册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参数调优一、调优背景:应银监会总会需求,需对银监会派出机构客户风险监测预警系统进行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 消息传递桥以下部分提供有关用于提高消息传递桥性能的各种方法的信息:▪最佳实践▪更改批处理大小▪更改批处理间隔▪更改服务质量▪使用多个桥实例▪更改线程缓冲池大小▪避免持久订阅▪用消息传递桥的源或目标共同定位消息传递桥▪更改“已启用异步模式”特性最佳实践▪如果远程目标的可用性已经很高,则避免使用消息传递桥。
JMS 客户端可直接发送到远程目标。
请在远程目标可用性不高的情况下使用消息传递桥,例如网络不稳定,或维护计划不同。
▪向远程目标转发消息时,要使用性能较高的JMS SAF 功能,不要使用消息传递桥。
一般而言,JMS SAF 代理要比消息传递桥快得多。
以非持久性恰好一次模式发送消息时的配置是一个例外。
注意:向外部目标和WebLogic 9.0 之前版本中的目标存储转发消息时,仍需使用消息传递桥。
更改批处理大小将“已启用异步模式”特性设置为false,并且服务质量为“恰好一次”时,Batch Size特性可用于通过增加每个事务(批处理)的消息数来减少事务提交数。
桥实例的最佳批处理大小取决于使用的JMS 提供程序、硬件、操作系统和应用程序环境中的其他因素的组合。
请参阅“管理控制台联机帮助”中的配置事务属性。
更改批处理间隔将“已启用异步模式”特性设置为false,并且服务质量为“恰好一次”时,BatchInterval特性用于调整桥在转发批处理消息之前等待达到批处理限量的时间长度。
桥实例的最佳批处理间隔取决于使用的JMS 提供程序、硬件、操作系统和应用程序环境中的其他因素的组合。
例如,如果队列不是很忙,则桥可能会频繁停止转发,以便等待达到批处理限量,这表明需要减小BatchInterval特性的值。
请参阅“管理控制台联机帮助”中的配置事务属性。
更改服务质量“恰好一次”服务质量的效果可能显著高于或低于“至多一次”和“至少一次”。
使用恰好一次服务质量时,桥必须向两个JMS 服务器经历两个阶段的提交以便确保事务语义,此操作的开销可能非常大。
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调优参数对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服务器初始创建的执行线程的数量,设置原则:增大机器的最大并发线程数使处理器利用率达到最大。
WebLogic Server 性能及调优-调整资源适配器调优WebLogic Server 性能及调整-调整资源适配器本附录向资源适配器开发人员介绍了一些最佳实践。
? 资源适配器的类加载优化 ? 连接优化 ? 线程管理? InteractionSpec 接口资源适配器的类加载优化可以将资源适配器类打包到一个或多个 JAR 文件中,然后将 JAR 文件放置到 RAR文件中。
这些文件称为嵌套的 JAR 文件。
当在 RAR 文件中嵌套 JAR 文件并需要通过类加载器加载类时,则必须要针对每个必须加载的类打开、关闭和迭代 RAR 文件中的 JAR。
如果 RAR 文件中的 JAR 数量很少且相对较小,则不会对性能产生太大的影响。
另一方面,如果有很多 JAR 文件,而且 JAR 很大,则会对性能造成较大的影响。
为了避免出现这些性能问题,可以执行下列操作之一:? 以展开格式部署资源适配器。
这可以消除 JAR 嵌套,因此可以减少在查找类时引起的性能下降。
? 如果不可以选择以展开格式部署资源适配器,则可以在 RAR 文件中展开 JAR。
这样同样取消了 JAR 的嵌套形式,并因此显著提高了类加载的性能。
连接优化BEA 建议资源适配器实现 J2CA 1.5 Specification 的 7.14.2 和 7.14.2 两部分描述的可选增强功能。
通过实现这些接口,WebLogic Server 可以提供若干只有依靠这些接口才可以使用的功能。
通过 7.14.1 一节中描述的 Lazy Connection Association,服务器能够自动清除未使用的连接,并防止应用程序独占资源。
通过 7.14.2 一节中描述的 Lazy Transaction Enlistment,应用程序能够在打开连接之后启动事务。
线程管理资源适配器实现应使用 WorkManager(如 J2CA 1.5 Specification 中的“Work Management”所述)启动需要在新线程中运行的操作,而不是直接新建线程。
跟我学中间件相关技术及应用——WebLogic应用服务器性能调优1.1.1对在WebLogic应用服务器中运行的代码进行调优1、在WebLogic应用服务器中的Web应用系统中的代码调优(1)HttpSession的使用应用服务器保存很多会话时,容易造成内存不足,所以尽量减少session的使用,放置session里的对象不应该是大对象,最好是简单小对象,实现串行化接口。
当会话不再需要时,应当及时调用invalidate()方法清除会话。
而当某个变量不需要时,及时调用removeAttribute()方法清除变量。
请勿将EJB对象放置在session中。
(2)JSP代码调优目前,在JSP页面中引入外部资源的方法主要有两种:include指令,以及include动作。
●include指令例如<%@ include file="copyright.html" %>,该指令在编译时引入指定的资源。
在编译之前,带有include指令的页面和指定的资源被合并成一个文件。
被引用的外部资源在编译时就确定,比运行时才确定资源更高效。
●include动作例如<jsp:include page="copyright.jsp" />。
该动作引入指定页面执行后生成的结果。
由于它在运行时完成,因此对输出结果的控制更加灵活。
但是,只有当被引用的内容频繁地改变时,或者在对主页面的请求没有出现之前,被引用的页面无法确定时,使用include动作才合算。
对于那些无需跟踪会话状态的jsp,关闭自动创建的会话可以节省一些资源。
使用如下page指令:<%@ page session="false"%> ;尽量不要将JSP页面定义为单线程,应设置为<%@page isThreadSafe=”true”%>;在JSP 页面最好使用输出缓存功能,如: <%@page buffer="32kb"%>;尽量用wl:cache定制标记来缓存静态或相对静态的内容,缓存jsp:include操作的结果能显著提高应用程序的运行性能。
Weblogic使用手册大全详解(中文).pdfWebLogic 管理指南1 WEBLOGIC 服务器管理概述 (1)域、管理服务器与受管服务器 (1)启动管理控制台 (1)2运行时对象与配置对象 (1)2日志消息的集中访问 (1)4W EB L OGIC管理服务器与W EB L OGIC受管服务器 (1)4启动时的错误消息 (1)5启动W EB L OGIC管理服务器 (1)5WebLogic 服务器启动时的口令使用 (1)6从Start菜单启动WebLogic管理服务器 (1)6启动与终止Windows服务形式的WebLogic 服务器 (1)6从命令行启动WebLogic管理服务器 (1)7用脚本启动管理服务器 (2)在受管服务器运行时重启管理服务器 (2)在同台机器上重启管理服务器 (2)1在其它机器上重启管理服务器 (2)1将W EB L OGIC受管服务器加入到域 (2)2启动W EB L OGIC受管服务器 (2)2通过脚本启动W EB L OGIC受管服务器 (2)4从老版本W EB L OGIC服务器升级 (2)4从管理控制台终止W EB L OGIC服务器 (2)5从命令行停止服务器 (2)5暂停和恢复受管服务器 (2)6将W EB L OGIC服务器设置为W INDOWS服务 (2)6删除W INDOWS服务形式的W EB L OGIC服务器 (2)7更改安装成Windows服务的服务器口令 (2)7注册启动与终止类 (2)72 节点管理器 (2)9节点管理器概述 (2)9配置与启动节点管理器 (3)启动节点管理器 (3)1启动管理服务器 (3)23 配置WEBLOGIC 服务器与集群 (3)5服务器与集群配置概述 (3)5管理服务器的角色 (3)5启动管理控制台 (3)7动态配置的工作原理 (3)8集群配置规划 (3)8服务器配置任务列表 (3)9- 1 -WebLogic 管理指南集群配置列表 (4)1新建一个域 (4)2概述 (4)3监控服务器 (4)4终止或暂停服务器 (4)5性能 (4)5集群数据 (4)6服务器安全 (4)6JMS (4)6JTA (4)6监控JDBC连接池 (4)6管理控制台的M ONITORING页面一览表 (4)74 用日志消息管理WEBLOGIC 服务器 (5)日志子系统概述 (5)本地服务器的日志文件 (5)1启动日志 (5)2客户端日志 (5)2日志文件的格式 (5)3消息属性 (5)3消息目录 (5)4消息的严重级别 (5)4消息调试 (5)5浏览日志文件 (5)5查看日志 (5)5创建域日志过滤器 (5)55 分发应用 (5)7分发格式 (5)7用管理控制台分发应用 (5)7步骤1:配置与分发应用 (5)8步骤2:分发应用组件 (5)8分发顺序 (6)自动分发 (6)1启用或禁用自动部署 (6)1动态分发 (6)2启用与禁用自动分发 (6)3自动分发展开目录格式的应用 (6)3卸载或重新分发被自动分发的应用 (6)36 配置WEBLOGIC 服务器的WEB 组件 (6)5概述 (6)5- 2 -WebLogic 管理指南HTTP 参数 .................................................................................................................................. 6 5配置监听端口............................................................................................................................. 6 6W EB应用 ..................................................................................................................................... 6 7Web 应用与集群 ...................................................................................................................... 6 7指定缺省的Web应用............................................................................................................. 6 7配置虚拟主机............................................................................................................................. 6 8虚拟主机与缺省Web应用..................................................................................................... 6 9设置虚拟主机.......................................................................................................................... 6 9W EB L OGIC服务器如何解析HTTP 请求................................................................................... 7 0设置HTTP访问日志................................................................................................................. 7 2日志回旋(LogRotation)..................................................................................................... 7 2使用管理控制台设置HTTP访问日志................................................................................... 7 2普通日志格式.......................................................................................................................... 7 3使用扩展日志格式 .......................................................................... (7)4 防止“POST 拒绝服务”攻击 (7)9设置 W EB L OGIC 服务器的 HTTP 隧道 ........................................................................... (79)配置 HTTP 隧道连接 .......................................................................... (8)建立客户端与 WebLogic 服务器之间的连接 ........................................................................ 80 用本地 I/O 提供静态文件服务(只适用于 W INDOWS ) (81)7 代理对另一个 HTTP 服务器的请求 (8)2概述 .......................................................................... (8)2设置从服务器的代理 .......................................................................... (8)2 代理 S ERVLET 的分发描述符示例 .......................................................................... (8)38 代理对 WEBLOGIC 集群的请求 (8)5概85述.............................................................................................................................................设置H TTP C LUSTER S ERVLET.................................................... (85)H TTP C LUSTER S ERVLET的分发描述符示例 .......................................................................... (86)9 ...................................................................................................................................................... 8 9配置W EB应用的安全性........................................................................... (89)设置对Web应用的授权.......................................................................... (89)多Web应用、Cookies与身份验证.......................................................................... (90)限制对Web应用资源的访问................................................................................................. 9 0在servlet中使用用户和角色.................................................................................................. 9 2配置W EB应用的外部资源........................................................................................................ 9 3在W EB应用中引用EJB S.......................................................................................................... 9 5配置会话管理............................................................................................................................. 9 5HTTP 会话属性 ....................................................................................................................... 9 6会话超时..........................................................................9 6........................................................配置会话Cookies .................................................................................................................... 9 7- 3 -WebLogic 管理指南使用长效cookies (9)7配置持久化会话 (9)7通用属性 (9)8使用基于内存的、单服务器的、非复制的持久存储 (9)9使用基于文件的持久存储 (9)9使用基于数据库的持久存储 (9)9使用URL重写 (1)01URL 重写的编码指南 (1)01URL 重写与无线访问协议(WAP) (1)02使用字符集与POST数据 (1)0210 配置APACHE-WEBLOGIC 服务器插件 (1)04概述 (1)04平台支持 (1)05安装库 (1)05配置HTTPD.CONF文件 (1)07通过URL代理 (1)07通过MIME文件类型代理 (1)08A PACHE-W EB L OGIC S ERVER插件的参数 (1)08使用SSL协议 (1)10与SSL-A PACHE配置有关的问题 (1)11H TTPD.CONF文件示例 (1)12配置文件示例 (1)13使用WebLogic集群的例子 (1)13不使用WebLogic集群的例子 (1)13配置虚拟主机的例子 (1)14分发A PACHE-W EB L OGIC S ERVER插件 (1)1411 配置MICROSOFT-IIS 插件 (1)15概述 (1)15连接池以及保持活动状态 (1)15安装库 (1)16更新IIS设置使请求转给W EB L OGIC (1)16创建IIS P ROXY.INI文件 (1)17文件扩展名方式的请求代理 (1)20路径方式的请求代理 (1)21.ini 文件示例 (1)21使用SSL (1)22将SERVLETS请求转交给W EB L OGIC服务器处理 (1)23安装测试 (1)2312 配置NETSCAPE 插件 (1)25- 4 -WebLogic 管理指南概述 (1)25连接池和保持激活 (1)25插件的配置 (1)26步骤1:复制库 (1)26步骤2:设置obj.conf文件 (1)26步骤3:更改MIME.types文件 (1)29步骤4:分发与测试NSAPI插件 (1)30参数 (1)30使用SSL协议 (1)32有关W EB L OGIC服务器集群失败转移的注意事项 (1)330BJ.CONF文件示例(不使用W EB L OGIC集群的情况) (1)34OBJ.CONF 文件(使用W EB L OGIC 集群的情况) (1)3613 安全管理 (1)39安全配置概述 (1)39改变系统口令 (1)40指定一个安全域 (1)41配置缓存域 (1)42配置LDAP安全域 (1)45配置Windows NT安全域 (1)49配置UNIX安全域 (1)50配置RDBMS安全域 (1)52安装一个定制安全域 (1)53测试代用安全域与定制安全域 (1)54迁移安全域 (1)54定义用户 (1)55定义用户组 (1)56定义虚拟机的用户组 (1)57定义ACL (1)57配置SSL协议 (1)58获得私钥与数字证书 (1)59保存私钥与数字签名 (1)61定义可靠的证书管理机构 (1)62定义SSL协议的配置字段 (1)63配置双向验证 (1)65C ONFIGURING RMI OVER IIOP OVER SSL(TBD) (1)65口令的保护 (1)66安装审计提供者 (1)67安装连接过滤器 (1)68设置J AVA安全管理器 (1)68配置安全上下文传播 (1)70- 5 -。
Oracle WebLogic Server 10.3性能调优二○○八年九月二十六日目录练习1:安装WebLogic服务器与Grinder测试工具 (3)练习2:部署测试Web应用 (6)练习3:熟悉Grinder测试方法 (9)练习4:熟悉常见调优方式 (13)练习1:安装WebLogic服务器与Grinder 测试工具时间:约30分钟目标:本练习结束,你将完成本练习软件环境设置,包括:●Oracle WebLogic Server 10.3●Grinder练习步骤:安装并配置WebLogic服务器1.WebLogic server 10.3的安装程序,windows文件为server103_win32.exe;Linux文件为server103_linux32.bin。
2.运行对应的安装文件;3.在欢迎页面点“next”;4.在“选择BEA主目录”窗口使用默认“create a new BEA Home”选项,选择默认主目录c:\bea,点击“next”;5.在“安装类型”窗口选择“完整安装complete”,点击“next”;6.在“选择产品安装目录”窗口,接受默认目录,点击“next”;7.在“选择快捷键位置”窗口,接受默认选项,点击“next”;8.在“安装总结”窗口,点击“next”开始安装9.在“安装结束”窗口,去掉选项“运行快速启动Run Quickstart”,点击“Done”,结束安装;10.使用配置向导,按照下面属性创建一个新的WebLogic域:●Create a new WebLogic domain:选中●User name: weblogic●User password: weblogic●Production Mode:选中●Do you want to customize any of the following options: YES●Administrator Server Name: AdminServer●Listen address: All local Addresses●Listen Port: 7001●Domain Name: perf●Domain location: C:\bea\user_projects\domains11.打开一个command命令行窗口,进入C:\bea\user_projects\domains\perf目录,执行startWebLogic.cmd启动WebLogic管理服务器,看看是否可以成功启动。
Weblogic服务器的性能调试优化方案注:在下面做的介绍都是以Weblogic8.1为例的,其它版本的Weblogic可能会有些许不同。
1) 设置JAVA参数;a) 编辑Weblogic Server启动脚本文件;BEA_HOME\user_projects\domains\domain-name\startWebLogic.cmd(startWebLogic.sh on Unix)BEA_HOME\user_projects\domains\domain-name\startManagedWebLogic.cmd(startManage dWebLogic.sh on Unix)b) 编辑set JAVA_OPTIONS命令,如:set JAVA_OPTIONS="-Xms256m —Xmx256m;c) 保存,重启即可。
注:在WebLogic中,为了获得更好的性能,BEA公司推荐最小Java堆等于最大Java堆。
2) 开发模式vs. 产品模式;开发模式和产品模式的一些参数的默认值不同,可能会对性能造成影响,下面是对性能有影响的参数列表:通过启动管理控制台,在域(如:mydomain)> 配置> 常规选择产品模式。
3) 尽量开启本地I/O;通过启动管理控制台,在域(如:mydomain)> 服务器> server实例(如:myserver)> 配置> 调整选择启用本地I/O。
注:此值也可通过手动的修改config.xml配置文件。
4) 调优执行队列线程;a) 修改默认执行线程数在这里,执行队列的线程数表示执行队列能够同时执行的操作的数量。
但此值不是设的越大越好,应该恰到好处的去设置它,太小了,执行队列中将会积累很多待处理的任务,太大了,则会消耗大量的系统资源从而影响整体的性能。
在产品模式下默认为25个执行线程。
为了设置理想的执行队列的线程数,我们可以启动管理控制台,在域(如:mydomain)> 服务器> server实例(如:myserver)> 监视> 性能中监控最大负载时执行队列的吞吐量和队列中的等待请求数,据此确定理想的数值。
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。
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。
Linux中的Weblogic性能测试调整一.操作系统参数调整1.linux TCP连接数调整通过命令:ulimit –n 查看当前最大TCP连接数,这表示当前用户的每个进程最多允许同时打开多少个文件。
一般系统默认为1024,在并发量大的情况下肯定不够用。
修改此限制的最简单办法:ulimit –n <file_num> 设置单一进程允许打开的最大文件数。
如果系统回显类似于“Operation not permitted”之类的话,说明修改失败,需要修改系统对该用户打开文件数的软限制或硬限制。
修改软限制或硬限制:修改/etc/security/limits.conf文件,在文件中添加如下行:* soft nofile 10240* hard nofile 10240表示修改所有用户的限制,也可以用指定用户名替代。
修改/etc/pam.d/login文件,在文件中添加如下行:session required /lib/security/pam_limits.so查看Linux系统级的最大打开文件数限制:cat /proc/sys/fs/file-max2.修改网络内核对TCP连接的有关限制端口范围:修改/etc/sysctl.conf文件,在文件中添加如下行:net.ipv4.ip_local_port_range = 1024 65535另外,有时无法建立TCP连接的原因可能是因为Linux网络内核的IP_TABLE防火墙对最大跟踪的TCP连接数有限制修改/etc/sysctl.conf文件,在文件中添加如下行:net.ipv4.ip_conntrack_max = 10240这表明将系统对最大跟踪的TCP连接数限制设置为10240。
请注意,此限制值要尽量小,以节省对内核内存的占用。
3.其他参数调整在/etc/sysctl.conf文件中增加如下参数,进行系统参数调整net.core.rmem_default=128388607 默认的TCP数据接收缓冲net.core.wmem_default=128388607 默认的TCP数据发送缓冲net.core.rmem_max=128388607net.core.wmem_max=128388607net.ipv4.tcp_rmem=8196 128388607 128388607 最小默认最大net.ipv4.tcp_wmem=8196 128388607 128388607net.ipv4.tcp_keepalive_time=1800tcp_keepalive_time 值控制TCP/IP 尝试验证空闲连接是否完好的频率。
WebLogic Server 性能及调整-调整WebLogic Server以下部分描述如何调整WebLogic Server 以满足应用程序需要。
∙设置启动WebLogic Server 的Java 参数∙开发与生产模式的默认调整值∙线程管理∙调整网络I/O∙设置编译器选项∙使用WebLogic Server 群集提高性能∙监视WebLogic Server 域设置启动WebLogic Server 的Java 参数无论何时启动WebLogic Server,都必须指定Java 参数。
为了便于调用,可以使用weblogic.Server 命令从命令行完成这一操作。
但是,因为从命令行启动WebLogic Server 所需的参数可能非常冗长并且易于出错,所以BEA 建议将此命令组合到脚本中。
为简化这一过程,可以在启动WebLogic Server 时WebLogic 分发附带的示例脚步中修改默认值,如为WebLogic Server 实例指定Java 选项中所述。
如果已使用配置向导创建域,则WebLogic 启动脚本位于您指定域的domain-name目录中。
默认情况下,此目录是BEA_HOME\user_projects\domain\domain-name,其中BEA_HOME是包含产品安装的目录,domain-name是由选定配置模板定义的域目录的名称。
有关使用Configuration Wizard 创建域的详细信息,请参阅使用Configuration Wizard 创建域。
需要在这些脚本中修改某些默认Java 值才能满足您的环境和应用程序的需要。
这些文件中重要的性能调整参数是JA V A_HOME 参数和Java 堆大小参数:∙将变量JA V A_HOME 的值更改为JDK 的位置。
例如:set JA V A_HOME=C:\bea\jdk150_03∙为得到更高性能的吞吐量,可将最小Java 堆大小设置成等于最大堆大小。
WebLogic Server 性能及调整-调整Java 虚拟机Java 虚拟机(Java virtual machine,简称JVM)是一种虚拟“执行引擎”实例,可在微处理器上执行Java 类文件中的字节码。
调整JVM 的方式会影响Weblogic Server 和应用程序的性能。
envelope下列部分讨论的是WebLogic Server 的JVM 调整选项:▪JVM 调整注意事项▪哪种JVM 适合您的系统?▪垃圾收集▪对IA32 平台启用旋转功能JVM 调整注意事项表5-1列出了针对WebLogic Server 的JVM 调整的一般注意事项:表5-1 JVM 调整一般注意事项调整因素信息引用JVM 供应商和版本仅可使用生产JVM(在该JVM 上,WebLogic Server 已通过认证)。
此版本的WebLogic Server 仅支持兼容J2SE 5.0 的JVM。
Supported Configurations页会经常更新,其中包含有关各种平台的认证信息。
调整堆大小和垃圾收集有关WebLogic Server 堆大小调整的详细信息,请参阅垃圾收集。
选择GC(垃圾收集)方案许多GC 方案均可用于管理系统内存,可用哪种方案取决于您的应用程序,如选择垃圾收集方案中所述。
混合客户端/服务器JVM WebLogic Server 支持使用不同JVM 版本进行客户端和服务器部署。
请参阅支持页获取混合客户端/服务器JVM。
UNIX 线程模型选择何种Solaris 线程模型将对Solaris 平台上的JVM 性能产生巨大影响。
可从多个线程模型以及所选模型内的各种同步方法中进行选择,但不同JVM 的情况也有所不同。
请参阅Sun Microsystems 网站上的Performance DocumentationFor the Java Hotspot Virtual Machine: Threading。
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的路径。