Weblogic性能调优 V1.0
(完整版)系统性能调优方案

第1章系统性能调优方案1.1系统的性能扩展模型介绍在进行性能指标设计工作前,必须从理论上对性能指标的可实现性进行分析。
理论上,系统的扩展模型可以分成两类,系统可扩展模型和不可扩展模型,如下图所示:两种性能扩展模型以上左图代表了系统随着并发用户量的增加系统响应时间呈现线性增长的趋势,是一种可扩展的情况;但对于系统右边的方式则是不可扩展的,它将随着用户数量的增大而响应时间大大急剧增加,这种模型是完全不可控制的。
通过系统压力实验,我们发现,即使是遵循可扩展模型设计的系统的响应性能和并发用户量并不能成永远的线性关系,在系统压力超过一定的值之后,如100并发,系统响应时间增加非常快,我们把这个点称为拐点.在拐点以下,系统性能呈现良好的线性特性,在拐点以上,则呈现出非线性的特征,同时CPU和内存出现相当大的增长,甚至100%占用。
这种现象的出现,说明系统的性能不仅仅取决于软件系统,而也同时取决于承载系统的硬件基础环境,如计算能力和内存大小.为此,系统性能设计的目的就是为系统设置合理的拐点并发值,而不可能无限制的追求无限大的并发下系统响应仍旧呈现线形特征。
1.2对响应时间的技术保障手段金税三期工程第二阶段河南地税建设项目财务管理子系统对系统的性能要求是比较高的,为了满足这个要求,在系统实现上必须要采用一系列的技术措施才能达到,具体来说将采用下面方式进行:1、预处理技术的应用预处理技术是一种在预定计划上由系统激发主动执行的计算模式,它对于一些处理内容固定,处理方式固定的功能非常有效,通过提前处理,实现数据生成时间和数据访问时间的隔离,在数据访问的时候不再需要为拿到结果而执行任何的计算,只需要简单的查询结果即可,这样可以大大增强系统的访问性能,有效的利用系统闲置时间.2、变动态内容查找为静态数据访问一些情况下,经过各种调优手段仍不能满足要求,就需要将一些动态的内容进行静态化处理,如可以将复杂的动态报表转化成HTML网页并发布在WEB服务器上,这种方式可以大大减轻应用服务器的访问压力,进一步减少用户等待的时间.例如,对一段历史时期的数据的汇总报表结果的查询,复杂报表结果等查询。
weblogic java_option 参数

weblogic java_option 参数WebLogic Server提供了一系列的Java选项参数,以控制Java 虚拟机的行为。
以下是一些常用的Java选项参数:1. -Xms: 初始Java堆大小2. -Xmx: 最大Java堆大小3. -XX:PermSize: 初始永久代大小4. -XX:MaxPermSize: 最大永久代大小5. -XX:NewSize: 初始新生代大小6. -XX:MaxNewSize: 最大新生代大小7. -XX:SurvivorRatio: 新生代中Eden区和Survivor区的比例8. -XX:NewRatio: 新生代和老年代的大小比例9. -XX:ParallelGCThreads: 并行垃圾回收线程数10. -XX:+UseParallelGC: 使用并行垃圾回收11. -XX:MaxGCPauseMillis: 最大垃圾回收暂停时间12. -XX:+HeapDumpOnOutOfMemoryError: 在发生OutOfMemoryError时输出堆转储文件13. -Dweblogic.security.SSL.ignoreHostnameVerification=true: 忽略SSL主机名验证14. -Dweblogic.security.SSL.protocolVersion=TLSv1.2: 使用TLSv1.2协议进行SSL/TLS通信15. -Dweblogic.MaxMessageSize: 设置WebLogic通信最大消息大小请注意,这只是一些常用的Java选项参数,您可以根据应用程序的需要进行调整。
对于一些高级调优参数,建议咨询WebLogic Server的官方文档。
weblogic线程池设置

图形化操作是在工作管理器中新建两个约束min和max如何修改WebLogic 9.x / 10.x 默认线程池大小2010/10/10 12:39 AM | 教主| 技术文章| 2 条评论了已经作者:老王来源:WebLogic中文爱好者官方文档指出,WebLogic 9 / WebLogic 10 的线程池是自调优的,并且在WebLogic 9的时候,通过修改config.xml可以修改默认线程池的最小值、最大值,但是很麻烦。
到了WebLogic 10gR3,连修改config.xml的办法都给取消了。
但是,可以通过在启动脚本增加如下参数,可以指定默认线程池的最小值、最大值:-Dweblogic.threadpool.MinPoolSize=100-Dweblogic.threadpool.MaxPoolSize=500如何修改weblogic默认线程池大小2010年12月27日wei发表评论阅读评论weblogic 9开始使用了线程自调优技术。
通过以下方法设置,可以指定默认线程的最大最小值。
方法一:修改启动脚本参数在启动脚本中,增加如下参数%JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS%=%SERVER_NAME%-Djava.security.policy=%WL_HOME%\server\lib\weblogic.policy-Dweblogic.threadpool.MinPoolSize=100 -Dweblogic.threadpool.MaxPoolSize=500%PROXY_SETTINGS% %SERVER_CLASS%方法二:修改config.xml在config.xml中,增加如下参数<server><name>AdminServer</name><self-tuning-thread-pool-size-min>100</self-tuning-thread-pool-size-min> <self-tuning-thread-pool-size-max>500</self-tuning-thread-pool-size-max> <listen-port>7923</listen-port><listen-address></listen-address></server>经过测试,以上两种方法适合weblogic9,10,11g。
Weblogic中间件运维经验汇总

Weblogic中间件运维经验汇总目录关于Weblogic参数调优的运维经验 (2)Weblogic性能调优的处理方法 (5)关于输电项目Weblogic安装的运维经验 (8)Weblogic回收数据库连接数配置的方法 (14)在Apache和Weblogic中分别部署静态页面的方法 (17)Weblogic Server性能调优经验 (20)WeblogicJVM堆参数设置方法 (24)关于Weblogic参数调优的运维经验报送单位:北京公司审核人:类型:业务应用关键字:GC垃圾回收1、引言为了提高维护人员运维水平,以集中与分享日常运行维护经验为目的,现进行典型经验的编制。
2、现象描述部分应用服务器出现宕机现象,在F5上查看时已经掉出集群状态。
3、处理过程停止宕机应用服务器上的Weblogic进程。
/home/weblogic/bea/user_projects/domains/pms/bin/setDomainEn v.sh文件中的启动内存大小并添加垃圾回收机制,修改后如下:MEM_ARGS="-Xms5248m -Xmx5248m -Xmn1536m-XX:SurvivorRatio=6-XX:+UseParNewGC-XX:+UseConcMarkSweepGC-XX:CMSFullGCsBeforeCompaction=20-XX:+UseFastAccessorMethods-XX:+AggressiveOpts"3、修改完成后重启Weblogic服务。
4、原因分析在收到报警信息后,对后台日志进行查看,报错信息如下:Exception in thread "CBM_正常处理任务线程" ng.OutOfMemoryError: Java heap spaceatoracle.jdbc.driver.OracleStatement.prepareAccessors(OracleStatement.ja va:868)atoracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatem ent.java:1045)atoracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPre paredStatement.java:839)atoracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatem ent.java:1132)atoracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePrepa redStatement.java:3316)atoracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3361)经过对报错日志分析,状态检修的CBM处理进程内存溢出报错,导致服务器宕机。
Weblogic应用层优化调试设置

社区Weblogic应用层优化调试设置
以Weblogic为中间件的社区应用层,有以下性能优化设置供参考。
1、设置为生产模式,增大连接数据
进入weblogic console 点击左边对应的域名,勾选右边的生产模式。
2、Weblogic登录超时时间
进入weblogic console界面,点击左边对应的域名,再点击监视,再点击服务器/子系统名称AdminServer ,再点击调整,可以看到如下图。
3、设置weblogic 占用的内存值
进入weblogic安装域名目录所在的bin文件夹,修改setDomainEnv.sh 文件根据物理机的实际情况设置内存值
4、设置应用服务数据库连接数据
打开应用程序xp-app 的jdbc数据连接文件
根据oracle实际连接数修改jdbc连接数
Oracle连接数据查看show parameter processes;
5、不限制事务数量
修改服务的事务处理数量限制,修改xp-app应用服务的jta.properties
超出默认的50会报错误
Caused by: ng.IllegalStateException: Max number of active transactions reached:50
6、优化程序代码
在weblogic安装域目录下的log日志可以看到严重超时方法。
weblogic优化指南

优化WebLogic一、为WebLogic启动设置Java参数垃圾收集(GC)是指JVM释放Java堆中不再使用的对象所占用的内存的过程,而Java堆(Heap)是指Java应用程序对象生存的空间。
堆大小决定了GC的频度和时间。
堆越大,GC频度低,速度慢。
堆越小,GC频度高,速度快。
所以GC和堆大小是一组矛盾。
为了获取理想的Heap堆大小,需要使用-verbosegc参数(Sun jdk: -Xloggc:<file>)以打开详细的GC输出。
分析GC的频度和时间,结合应用最大负载所需内存情况,得出堆的大小。
通常情况下,我们建议使用可用内存(除操作系统和其他应用程序占用之外的内存)70-80%,为避免堆大小调整引起的开销,设置内存堆的最小值等于最大值即:-Xms=-Xmx。
而为了防止内存溢出,建议在生产环境堆大小至少为256M(Platform至少512M),实际环境中512M~1G左右性能最佳,2G以上是不可取的,在调整内存时可能需要调整核心参数进程的允许最大内存数。
对于sun 和hp的jvm,永久域太小(默认4M)也可能造成内存溢出,应增加参-XX:MaxPermSize=128m。
建议设置临时域-Xmn的大小为-Xmx的1/4~1/3, SurvivorRatio为8堆栈内存优化,修改配置文件:WL_HOME=C:\bea\weblogic81 "%WL_HOME%\common\bin\commEnv.cmd":bea#如果采用的上bea的JDK# JVM Heap(堆内存)最小尺寸为96M,最大尺寸为256Mset MEM_ARGS=-Xms96m -Xmx256m:sun#如果采用的是sun的JDK# JVM Heap(堆内存)最小尺寸为32M,最大尺寸为200M#公共变量对象的内存限制: PermSize:最小尺寸, MaxPermSize :最大允许分配尺寸set MEM_ARGS=-Xms32m -Xmx200m -XX:MaxPermSize=128m监视堆栈使用情况:下载JRockit JDK,该JDK已经自带了JRockit Mission Control工具,目前好像还没有单独下载JRockit Mission Control的地方,于JRockit JDK进行了绑定下载;在C:\bea\jrockit81sp5_142_08\console目录里面运行:C:\bea\jrockit81sp5_142_08\bin\java –Xmanagement -jar ManagementConsole.jar 如何监控weblogic呢?修改weblogic启动脚本startWebLogic.cmd,在里面加入-Xmanagement启动参数:%JAVA_HOME%\bin\java -Xmanagement %JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS% =%SERVER_NAME% -Dweblogic.ProductionModeEnabled=%PRODUCTION_MODE% -Djava.security.policy="%WL_HOME%\server\lib\weblogic.policy" weblogic.Server二、设置与性能有关的配置参数在一个WebLogic域中,配置文件(config.xml)位于与管理服务器通信的机器里,提供WebLogic MBean的长期存储。
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服务器初始创建的执行线程的数量,设置原则:增大机器的最大并发线程数使处理器利用率达到最大。
WEBLOGIC性能参数

WEBLOGIC性能参数MessagesLogged –该weblogic服务器实例产生的日志消息总数Number of total log messages generated by this instance of the weblogic server.Registered - 如果已取消注册由该对象表示的MBean,则返回falseReturns false if the MBean represented by this object has been unregistered.CachingDisabled - 禁用代理中的缓存的专用属性Private property that disables caching in proxies.ServerRuntimeSocketsOpenedTotalCount - 返回本服务器上登记的socket的总数Return the total number of registrations for socket muxing on this sever.Registered - 如果已取消注册由该对象表示的MBean,则返回falseReturns false if the MBean represented by this object has been unregistered.ActivationTime –返回服务器激活时间Return the time when the server was started.CachingDisabled -禁用代理中的缓存的专用属性Private property that disables caching in proxies.OpenSocketsCurrentCount –返回本服务器上当前登记的socket数Return the current number sockets registered for socket muxing on this server.AdminServerListenPort –返回管理服务器监听的端口Return the port on which admin server is listening for connections.RestartsTotalCount –返回自群集上次激活后本服务器重启的总次数Return the total number of restarts for this server since the cluster was last activated.ListenPort –返回当前服务器监听连接的端口Return the port on which this server is listening for connections.ServletRuntimeExecutionTimeAverage –返回所有servlet自被创建后被调用的平均数Returns the average amount of time all invocations of the servlet have executed since created.CachingDisabled - 禁用代理中的缓存的专用属性Private property that disables caching in proxies.Registered - 如果已取消注册由该对象表示的MBean,则返回falseReturns false if the MBean represented by this object has been unregistered.ExecutionTimeHigh –返回servlet自创建后耗时最长的一个交易调用的时间Returns the amount of time the single longest invocation of the servlet has executed since created.ReloadTotalCount –返回servlet被重载总次数Returns the total number of times the servlet has been reloaded.PoolMaxCapacity –返回单线程模式下servlet的最大能力Returns the maximum capacity of this servlet for single thread model servlets.InvocationTotalCount –返回servlet被调用的总次数Returns the total number of times the servlet has been invoked.ExecutionTimeLow –返回servlet自创建后单次最短调用消耗的时间Returns the amount of time the single shortest invocation of the servlet has executed since created. Note that for the CounterMonitor, the difference option must be used.ExecutionTimeTotal –返回servlet自被创建后所有被调用的总时间数Returns the amount of time all invocations of the servlet has executed since created. WebAppComponentRuntimeSessionsOpenedTotalCount –返回该服务器上打开的会话总数Returns the total number of sessions opened in this server.CachingDisabled - 禁用代理中的缓存的专用属性Private property that disables caching in proxies.Registered - 如果已取消注册由该对象表示的MBean,则返回falseReturns false if the MBean represented by this object has been unregistered.OpenSessionsHighCount –返回本服务器上打开会话总数的最大值Returns the high water mark of the total number of open sessions in this server. The count starts at zero each time the server is activated. Note that this is an optimization method for a highly useful statistic that could be implemented less efficiently using change notification.OpenSessionsCurrentCount –返回当前component打开的会话总数Returns the current total number of open sessions in this component. EJBStatefulHomeRuntimeStateless –如果mbean代表无状态会话bean,返回true,否则返回false。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Weblogic 10.3.1.0 性能调优方案
V1.0
一、方案背景
本文描述的在Suse Linux Enterprise Server11 操作系统下Weblogic 10.3.1.0 性能调优,硬件的系统比较差,是由8core CPU,16G内存分离4个操作系统,每个操作系统是2core CPU,4G的内存,硬件系统的配置不是很高。
由于新框架在Weblogic10 下运行速度比较缓慢,需要对weblogic 容器的一些参数进行重新设置,以便提高新框架的运行速率,新框架包括登录页面、角色管理、管理员管理、日志管理、模板管理以及字典库管理,使用框架的技术是SSH3。
安装完Weblogic 10.3.1.0后,Weblogic的一些参数都是默认参数,在linux中需要对一些参数进行重新设置。
二、优化部分
本次优化,主要以服务器启动、参数设置、应用登录进行优化
2.1、创建域慢启动慢的特征:创建域到70%时,进程长时间等待,创建
域启动Weblogic的时候也是长时间等待。
原因:线程挂在security相关的随机数生成上面,由于JDK的bug导致而成的。
解决办法:修改Linux Weblogic上的jdk
$JAVA_HOME/jre/lib/security/java.security文件
将securerandom.source = file:/dev/urandom修改为:
Securerandom.source = file:/dev/./urandom
这样可以解决任何一个域weblogic启动慢的问题
由于windows的实现机制和linux不一样,所以不存在启动慢的问题
2.2、修改JAVA_VM、Cache等相关参数
在$DOMAIN_HOME/bin/setDomainEvn.sh中,修改如下参数:if [ "${JAVA_VENDOR}" = "Sun" ] ; then
WLS_MEM_ARGS_64BIT="-Xms256m -Xmx512m"
export WLS_MEM_ARGS_64BIT
WLS_MEM_ARGS_32BIT="-Xms512m -Xmx512m"
export WLS_MEM_ARGS_32BIT
else
WLS_MEM_ARGS_64BIT="-Xms512m -Xmx512m"
export WLS_MEM_ARGS_64BIT
WLS_MEM_ARGS_32BIT="-Xms512m -Xmx512m"
export WLS_MEM_ARGS_32BIT
fi
修改为:
if [ "${JAVA_VENDOR}" = "Sun" ] ; then
WLS_MEM_ARGS_64BIT="-Xms512m –Xmx1024m"
export WLS_MEM_ARGS_64BIT
WLS_MEM_ARGS_32BIT="-Xms512m –Xmx1024m"
export WLS_MEM_ARGS_32BIT
else
WLS_MEM_ARGS_64BIT="-Xms512m –Xmx1024m"
export WLS_MEM_ARGS_64BIT
WLS_MEM_ARGS_32BIT="-Xms512m –Xmx1024m"
export WLS_MEM_ARGS_32BIT
fi
修改如下参数:
MEM_PERM_SIZE_64BIT="-XX:PermSize=256m"
export MEM_PERM_SIZE_64BIT
MEM_PERM_SIZE_32BIT="-XX:PermSize=128m"
export MEM_PERM_SIZE_32BIT
修改为:
MEM_PERM_SIZE_64BIT="-XX:PermSize=512m"
export MEM_PERM_SIZE_64BIT
MEM_PERM_SIZE_32BIT="-XX:PermSize=512m"
export MEM_PERM_SIZE_32BIT
修改如下参数:
MEM_MAX_PERM_SIZE_64BIT="-XX:MaxPermSize=256m"
export MEM_MAX_PERM_SIZE_64BIT
MEM_MAX_PERM_SIZE_32BIT="-XX:MaxPermSize=128m"
export MEM_MAX_PERM_SIZE_32BIT
修改为:
MEM_MAX_PERM_SIZE_64BIT="-XX:MaxPermSize=512m"
export MEM_MAX_PERM_SIZE_64BIT
MEM_MAX_PERM_SIZE_32BIT="-XX:MaxPermSize=256m"
export MEM_MAX_PERM_SIZE_32BIT
2.3、Weblogic参数优化
base-domain –> services -> setting for AdminServer ->Configuration ->Tuning 设置NativeIOEnabled 设置为True
注意:如果在config.xml中有该选择,可以手动修改
2.3.1、调优执行队列线程:
a.修改默认执行线程数
在这里,执行队列的线程数表示执行队列能够同时执行的操作的数量。
但是此值不应该设置越大越好,应该恰到好处的去设置它,太小了,执行队列中将会积累很多待处理的任务,太大了,则会消耗大量的系统资源从而影响整体性能。
在产品模式下默认为25个执行线程
理想的默认执行线程数是由多方面的因素决定的,比如机器CPU性能、总体体系架构、I/O、操作系统的进程调度机制、JVM的线程调度机制。
随着CPU 个数的增加,WebLogic可以近乎线性地提高线程数。
线程数越多,花费在线程切换的时间也就越多;线程数越小,CPU可能无法得到充分的利用。
为获取一个理想的线程数,需要经过反复的测试。
在测试中,可以以25*CPU个数为基准进行调整。
当空闲线程较少,CPU利用率较低时,可以适当增加线程数的大小(每五个递增)。
对于PC Server和Windows 2000,则最好每个CPU小于50个线程,以CPU利用率为90%左右为最佳。