weblogic优化设置调优参数及监控指标
weblogic java_option 参数
![weblogic java_option 参数](https://img.taocdn.com/s3/m/6c7e535c59fafab069dc5022aaea998fcc2240c2.png)
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性能调优-通过Thread Dump调优JAVA应用程序
![Weblogic性能调优-通过Thread Dump调优JAVA应用程序](https://img.taocdn.com/s3/m/3807f18d680203d8ce2f24e1.png)
理解和探查内存不足/内存泄漏OutOfMemoryError/Memory Leak Analyze & UtilitiesDemonstrate II(AIX)理解和探查内存不足/内存泄漏听完这次Webinar,您将能够:q了解Java基本内存管理基本概念q了解发生内存不足/内存泄漏错误的原因和症状q了解如何解决内存不足/内存泄漏错误MENU•Java内存管理的基本概念•内存不足和内存泄漏错误的原因和症状•使用分析工具解决内存不足和内存泄漏错误•预防内存不足和内存泄漏•OutOfMemory分析实例…Java内存–Java堆内存(heap)…Java堆内存(heap):–是JVM用于分配Java对象的内存,包含活动对象和不可用对象–堆大小通常是在服务器启动时使用java命令中的–Xms(最小)–Xmx(最大)标志来定义。
…本地内存(native memory):–是JVM用于其内部操作的本地内存(非Java内存)–JNI代码和第三方本地模块(例如,本地JDBC驱动程序)也使用本地内存–最大本地内存大小取决于以下因素:•操作系统进程内存大小限制•已经指定用于Java堆的内存…进程内存大小:–32位操作系统,理论最大值2的32次方=4G–进程内存=Java内存+本地内存+加载的可执行文件和库+操作系统保留内存…垃圾回收 (Garbage Collection, GC):–JVM自动检测和释放不再使用的内存。
–Java运行时JVM会执行GC,这样程序员不再需要显式释放对象。
–通常在空闲内存降低到某一水平或内存分配达到某一数量后自动触发。
…以下OutOfMemory简称OOM…以下Memory Leak简称ML…Heap简称“堆”Java内存问题的两种表现形式…Java内存问题的两种表现形式:–内存不足错误–内存泄漏错误…内存不足错误--明确显示出ng.OutOfMemoryError –没有空闲内存可供JVM或本地代码用于分配新对象或内存块–在Java堆或本地内存中都可能发生…内存泄漏错误--没有错误信息,但是内存几乎耗尽–已经分配好的内存或对象,当不再需要,没有得到释放–内存曲线是一条斜向上的曲线–对Java堆或本地内存都可能产生这个问题–通常最终的状态就会导致OOM错误…通常内存泄漏ML会导致OOM错误,因此两者的探查方法完全相同!Java内存问题的两个主要发生区段…Java内存问题的两个主要发生区段:–Java内存--包括heap堆内存和permanent区–本地内存--包括JVM进程内存和java使用的第三方本地代码…Java内存不足–Java堆内存heap不足,无法再分配新对象或内存块–permanent区内存不足,无法再加载类到内存中(Sun & Hp JDK)…本地内存不足–物理内存不够,无法再得到内存–第三方本地代码有内存泄漏的Bug,例如oracle oci driver本地代码–JVM的JIT或者JVM本身的BugMENU•Java内存管理的基本概念•内存不足和内存泄漏错误的原因和症状•使用分析工具解决内存不足和内存泄漏错误•预防内存不足和内存泄漏•OutOfMemory/Memory Leak错误实例内存不足和内存泄漏错误的典型原因(1)…物理内存不足–物理内存有限,例如只有1G–物理内存很大,但是应用很多,占用太多内存…Swap区大小不够…Weblogic Server压力太大–并发用户太多–大数据量分配应用,例如统计报表…Permanent区太小…用户代码内存不释放–http session放置了大量对象–在内存分配大量数据–用户自己创建太多线程–调用AWT等画图接口…用户代码内存泄漏问题–jdbc连接没有close–分配好的对象没有close和释放内存不足和内存泄漏错误的典型原因(2)…Weblogic Server配置不当–给heap分配的内存太少–session timeout时间太长–EJB pool和Cache的太大…第三方Java应用的内存问题–第三方Java应用也存在内存不足或者泄漏问题…第三方本地代码的内存泄漏问题–第二类JDBC驱动的内存泄漏,例如Oracle Oci Driver–其他第三方本地代码的内存泄漏…JVM本身的内存问题–JIT技术需要消耗更多的本地内存–JVM本身的Bug,例如GC的Bug在 Java 堆中发生的 OOM 的故障症状…如果Java堆发生OOM/ML:–Weblogic Server运行缓慢,响应速度很慢(JVM在频繁的做GC,Java进程占用比较多的CPU)–从console的内存监控曲线看,一直徘徊在顶部–最终JVM抛出ng.OutOfMemoryError异常,stdout或stderr中将显示这则消息–通过thread dump可以看到大部分时间•所有线程都在wait,只有GC线程在工作•很多线程都在申请内存–线程可能会异常退出(即在Thread Dump中看不到这个线程,线程丢失)–持续的Java堆OOM/ML错误偶尔也会导致JVM进程退出服务,通常伴随会产生一个文本Core文件JVM退出时产生的文本Core文件…通常JVM异常退出伴随会产生一个文本Core文件–除了OOM,JVM也会因为其他原因异常退出–IBM JDK -- javacore****.txt文件小节回顾ü内存不足和内存泄漏错误的典型原因üOOM 错误相关故障症状在本小节中,我们讲述了以下内容:MENU•Java内存管理的基本概念•内存不足和内存泄漏错误的原因和症状•使用分析工具解决内存不足和内存泄漏错误•预防内存不足和内存泄漏•OutOfMemory错误实例使用分析工具来分析OOM问题…发生Java Heap OOM问题时,无法定位到问题,最终的办法只能使用分析工具来做分析。
Weblogic参数调优
![Weblogic参数调优](https://img.taocdn.com/s3/m/5e40702fa5e9856a56126082.png)
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线程池设置
![weblogic线程池设置](https://img.taocdn.com/s3/m/0e9bef8cd0d233d4b14e6916.png)
图形化操作是在工作管理器中新建两个约束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中间件运维经验汇总](https://img.taocdn.com/s3/m/0bf5eabbff00bed5b9f31dca.png)
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常用监控方法及指标](https://img.taocdn.com/s3/m/47133c2abed5b9f3f90f1c36.png)
性能测试工作室,专注于性能测试技术研究(JMSRuntimeJMSServersCurrentCount 返回当前JMS服务的连接数ConnectionsCurrentCount 返回本JMS服务器上当前的连接数JMSServersHighCount 返回自服务器启动后JMS服务的最大连接数ConnectionsHighCount 返回本JMS服务器自上次重置后的最大连接数JVMRuntimeHeapSizeCurrent 返回当前JVM堆中内存数,单位时字节HeapFreeCurrent 返回当前JVM堆中空闲内存数,单位时字节ExecuteQueueRuntimeExecuteThreadCurrentIdleCount 返回队列中当前空闲线程数PendingRequestOldestTime 返回队列中最长的等待时间PendingRequestCurrentCount 返回队列中等待的请求数Queue Length 队列长度JDBCConnectionPoolRuntimeWaitingForConnectionHighCount返回本JDBCConnectionPoolRuntimeMBean 上最大等待连接数WaitingForConnectionCurrentCount 返回当前等待连接的总数MaxCapacity 返回JDBC池的最大能力WaitSecondsHighCount 返回等待连接中的最长时间等待者的秒数ActiveConnectionsCurrentCount 返回当前活动连接总数ActiveConnectionsHighCount 返回本JDBCConnectionPoolRuntimeMBean 上最大活动连接数注:weblogic通常监控JVM和执行队列,JDBC连接池,其中执行队列最关键的指标是Queue Length 队列长度weblogic一般来说监控jvm的使用、执行线程队列情况、和连接池的变化情况,还有一个很重要的检查weblogic的console日志这里经常能反映一些很重要到情况。
weblogic优化指南
![weblogic优化指南](https://img.taocdn.com/s3/m/bfc3c13deefdc8d376ee32eb.png)
优化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调优参数及监控指标](https://img.taocdn.com/s3/m/c6912810a2161479171128b4.png)
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服务器初始创建的执行线程的数量,设置原则:增大机器的最大并发线程数使处理器利用率达到最大。
OracleWebLogic10.3连接池参数配置详解
![OracleWebLogic10.3连接池参数配置详解](https://img.taocdn.com/s3/m/291d0ad7102de2bd96058866.png)
数据源配置:常规可在域中标识该数据源地唯一名称.此数据源绑定到地路径.默认情况下,名称就是数据源地名称.要为数据源指定多个名,请在单独地行上分别输入每个名.查找路径地应用程序将得到与此数据源对应地实例.启用通过一次服务器访问“预取”(即从服务器发送到客户端)多个行.当外部客户端通过使用访问数据库时,行预取功能可以一次性地访问服务器来为客户端提取多行,从而提高性能.当客户端和位于同一中时,将忽略此设置且不使用行预取功能.如果启用行预取,则指定为客户端预取地结果集行数.最佳预取大小取决于此查询地具体设置.通常在达到特定值之前,增加此数字时性能会提高.达到此特定值后,即使再增加此数字,也不会使性能有任何显著地提高.如果超过行,提高性能地可能性将微乎其微.通常默认值即适用于大多数情况.最小值:最大值:指定流量数据类型地数据块大小.流数据类型(例如,调用()而得到地数据类型)将根据需要以按大小排列好地数据块形式从发送到客户端.最小值:最大值:数据源配置: 连接缓冲池配置选项要连接到地数据库地 . 地格式随驱动程序地不同而变化.用于在连接缓冲池中创建物理数据库连接地驱动程序类地完整包名.(请注意,此驱动程序类必须存在于将其部署到地任何服务器地类路径中.):传递给创建物理数据库连接时使用地驱动程序地属性地列表.例如: .请分别在单独地行上列出各个对.要启用驱动程序级功能,请将驱动程序属性及其值添加到“属性”列表. 设置驱动程序地对象上地“属性”列表中地驱动程序级属性.注意:由于安全方面地原因,当以生产模式运行时,您不能在此属性列表中指定数据库密码.如果在此属性列表中指定密码,那么数据源部署将会失败.要替代此安全检查,请在启动此服务器时使用命令行参数“”.创建物理数据库连接时传递给驱动程序地密码属性.该值以加密形式存储在描述符文件及显示在“管理控制台”中.请确认密码.要在创建连接缓冲池时创建地物理连接数.如果无法创建这一数量地连接,创建此连接缓冲池地操作将会失败.此连接数也是连接缓冲池将保持地最小可用物理连接数.最小值:最大值:此连接缓冲池可容纳地最大物理连接数.将新连接添加到连接缓冲池时创建地连接数.不再有可用地物理连接来满足连接请求时,会创建该数量地附加物理连接并将它们添加到连接缓冲池中.用于维护存储在语句缓存中地准备就绪地语句地算法.选项有:▪当使用新地预处理或可调用语句时,替换缓存中最近最少使用地语句.▪缓存前若干个固定数量地预处理和可调用语句.存储在缓存中地“准备就绪”语句和可调用语句地数量.(这样可能会提高服务器性能.)可以重用缓存中地语句而无需重新加载它们,这样便可提高服务器性能.连接缓冲池中地每个连接都有其自己地语句缓存.将语句缓存地大小设置为将会关闭该语句缓存.高级配置选项名称描述使能够在将连接提供给客户端之前对连接进行测试.(要求指定“测试表名称”.)此测试在响应客户端对缓冲池中地连接地请求时将添加短时间地延迟,但会确保客户端收到有效连接.对于使用故障转移算法地在多数据源中使用地连接缓冲池,该测试是必需地.对未用连接进行测试地间隔秒数.(要求指定“测试表名称”.)未通过测试地连接将被关闭,然后将它们重新打开以重新建立有效地物理连接.如果测试再次失败,则此连接将被关闭.如果设置为,定期测试将被禁用.测试物理数据库连接时使用地数据库表名.指定“测试频率”和启用“测试保留地连接数”时需要此名称.用于测试连接地默认代码为“ (*) ”大多数数据库服务器会优化此以避免对表进行扫描,但仍然建议将“测试表名称”设置为已知包含极少地行或不包含行地表地名称.如果“测试表名称”以“ ”开头,则此开始标记后面地字符串剩余部分将被视为用于测试连接地语句文字而非标准查询.在将连接传递到应用程序之前或定期连接测试过程期间,相信连接仍然有效并将跳过连接测试时使用连接地秒数.此选项是一种最佳选择,可以最大程度地减少连接测试对性能造成地影响(特别是在流量很大地时候).最小值:最大值:在收缩为满足需要而增大了地连接缓冲池前需等待地秒数.如果设置为,收缩将被禁用.最小值:最大值:要执行地、将初始化新建物理数据库连接地语句.以后跟一个空格作为语句地开头.如果“初始”值以“ ”开头,则此开始标记后面地字符串剩余部分将被视为用于初始化数据库连接地语句文字.如果“初始”值不以“ ”开头,该值将被视为表格地名称,并会使用下列语句来初始化连接:“ (*) ”表必须存在且此连接地数据库用户必须能够访问它.大多数数据库服务器会优化此以避免对表进行扫描,但仍然建议将设置为已知包含极少地行或不包含行地表地名称.建立数据库连接尝试地间隔秒数.如果不设置此值,则在数据库不可用地情况下,创建数据源地操作将失败.如果已设置此值且在创建数据源时数据库不可用,则在您指定地秒数之后,将重新尝试在缓冲池中创建连接,并会不断尝试创建连接,直到创建成功.如果设置为,连接重试将被禁用.最小值:最大值:创建每个物理数据库连接前地延迟秒数.此延迟支持不能快速连续处理多个连接请求地数据库服务器.在初始数据源创建及数据源生命周期内,每当创建物理数据库连接时都会有此延迟.最小值:最大值:保留连接处于不活动状态地秒数,该秒数过后将收回该连接并将其释放回连接缓冲池.可以使用“非活动连接超时”功能收回泄漏地连接未由应用程序显式关闭地连接.请注意,不能使用此功能来代替正常关闭连接.如果设置为,此功能将被禁用.最小值:最大值:等待保留数据源地连接缓冲池中地连接时会阻塞线程地最大并发连接请求数.最小值:最大值:保留连接缓冲池中地连接地调用超时之前经过地秒数.如果设置为,则调用永远不会超时.如果设置为,则调用会立即超时.最小值:最大值:此时间后当前正在执行地语句将超时.依赖于底层驱动程序支持. 使用()方法将指定地时间传递给驱动程序.如果驱动程序不支持此方法,可能会引发异常并导致超时值被忽略.值为时禁用此功能.值为表示语句不会超时.最小值:最大值:即便仍在使用从缓冲池获取地连接,也能够将数据源关闭.是一个能够改善性能地选项,它启用执行线程以保持已进入缓冲池地数据库连接,即使在应用程序关闭逻辑连接之后.启用后,将在应用程序首次使用某个执行线程保留连接时把连接缓冲池中地一个数据库连接固定到此线程.当应用程序使用完此连接并调用()(此方法在其他情况下将把连接返回到连接缓冲池)时,将把该连接保留给执行线程,而不会将其返回连接缓冲池.当此后某个应用程序使用相同地执行线程请求连接时,将提供此线程已保留地这个连接.使用,当多个线程尝试同时保留一个连接时,连接缓冲池上不会发生锁定冲突,对于试图在有限个数地数据库连接中保留同一个连接地线程,也没有冲突.如果应用程序使用相同地执行线程同时保留连接缓冲池中地多个连接,将创建附加地数据库连接并同样将它们固定到此线程.指定在应用程序使用底层供应商连接对象之后是否从连接缓冲池中删除连接.如果禁止删除已占用地连接,必须确保该数据库连接适合被其他应用程序重复使用.设置为(默认设置)时,应用程序关闭逻辑连接后将不把物理连接返回给连接缓冲池.将关闭并重新创建此物理连接.设置为时,应用程序关闭逻辑连接后,物理连接将返回到连接缓冲池并可由该应用程序或其他应用程序重复使用.。
weblogic 优化
![weblogic 优化](https://img.taocdn.com/s3/m/8e1ad6aedd3383c4bb4cd27d.png)
优化WebLogic 服务器性能参数WebLogic 配置文件(config.xml)包含了大量很直观的与性能有关的参数,能通过配置环境与应用程序得到很好的优化。
基于系统的需要调整这些参数不仅能改善单个点的性能,而且能提高整个应用程序性能的可衡量性。
试着采用下列WebLogic配置方法,或许能使你的系统达到最佳状态:一修改运行队列线程数的值。
在WebLogic 中队列元素的线程数等于同时占用运行队列的应用程序的数目。
当任务加入一个WebLogic 实例,它就被放到执行队列中,然后分配给任务一个线程来运行。
线程消耗资源,因此要小心处理这个属性——增加不需要的值,会降低性能。
二,如果可能,使用自带的性能包(NativeIOEnabled=true)。
三,使用特定的应用程序执行队列。
四,使用JDBC连接池时,修改下列属性:n 驱动名称:使用小的驱动或者jDriver。
n 初始容量:设为与最大容量相同的值。
n 最大容量:其值至少应与线程数相同。
五,把连接池的大小设为与执行队列的线程数相同。
六,设置缓冲。
七,为Servlet和JSP使用多个执行队列。
八,改变JSP默认的Java编译器,javac 比jikes或sj要慢。
优化WebLogic提要:n 为WebLogic 启动设置Java 参数。
n 设置与性能有关的配置参数。
n 调整开发与产品模式默认值。
n 使用WebLogic “自有的IO ”性能包。
n 优化默认执行队列线程。
n 优化连接缓存。
n 如何提高JDBC 连接池的性能。
n 设置Java 编译器。
n 使用WebLogic 集群提高性能。
n 监视WebLogic 域。
一、为WebLogic 启动设置Java 参数只要启动WebLogic ,就必须指定Java 参数,简单来说,通过WebLogic.Server 域的命令行就可以完成,不过,由于这样启动的过程冗长并且易于出错,BEA 公司推荐你把这个命令写进脚本里。
weblogic优化
![weblogic优化](https://img.taocdn.com/s3/m/a2ab686c1eb91a37f1115cec.png)
WebLogic Server Performance and TuningWebLogic Server性能调整Tuning Java Virtual Machines (JVMs)调整java虚拟机Garbage Collection垃圾回收VM Heap Size and Garbage Collection虚拟机堆大小和垃圾回收java堆是java对象存活的地方。
其中存有live对象,dead对象和空闲内存。
当正运行的程序中某个对象不可达时,它就被认为是“garbage”并且准备被回收。
一个最优方法是调整垃圾回收时间在执行时间的5%之内。
java虚拟机的堆大小决定了虚拟机垃圾回收的频率和用时。
要在分析垃圾回收的时间运行时间和频率后再将对大小调整到一个可接受的比率。
如果堆设置的大了,full GC 一次就变慢,但发生频率低。
如果根据你的需要设置堆大小,则full GC一次就变快,但是发生频率高。
调整堆大小的目标是,使给定时间内weblogic server能服务的客户数最大化,与此同时,使java虚拟机花在垃圾回收上的时间最小化。
在benchmarking内为了确保性能,你可能设置很大的堆大小以确保在整个benchmark运行中都不发生垃圾回收。
如果在没有堆空间的情况下运行,你会看到如下错误:ng.OutOfMemoryError <<no stack trace available>>ng.OutOfMemoryError <<no stack trace available>> Exception in thread "main"Choosing a Garbage Collection Scheme选择垃圾回收计划根据所使用的java虚拟机,可以从几个垃圾回收计划来管理你的系统内存。
例如,某些垃圾回收计划更适合特定应用。
weblogic启动内存配置[最新]
![weblogic启动内存配置[最新]](https://img.taocdn.com/s3/m/525bb81b854769eae009581b6bd97f192279bff1.png)
Weblogic 启动内存配置1、找到配置文件位置,默认路径是wlserver_10.3/common/bin/commEnv.sh2、找到commEnv.sh文件,修改此配置文件if [ "$PRODUCTION_MODE" = "true" ]; thencase $JA V A_VENDOR inBEA)JA V A_VM=-jrockitMEM_ARGS="-Xms512m -Xmx2048m";;HP)JA V A_VM=-serverMEM_ARGS="-Xms512m -Xmx2048m -XX:MaxPermSize=512m";;IBM)JA V A_VM=MEM_ARGS="-Xms512m -Xmx2048m";;Sun)JA V A_VM=-serverMEM_ARGS="-Xms512m -Xmx2048m -XX:MaxPermSize=512m";;*)JA V A_VM=MEM_ARGS="-Xms512m -Xmx2048m";;esacelsecase $JA V A_VENDOR inBEA)JA V A_VM=-jrockitMEM_ARGS="-Xms512m -Xmx2048m"JA V A_OPTIONS="${JA V A_OPTIONS} -Xverify:none";;HP)JA V A_VM=-clientMEM_ARGS="-Xms512m -Xmx2048m -XX:MaxPermSize=512m";;IBM)JA V A_VM=MEM_ARGS="-Xms512m -Xmx2048m";;Sun)JA V A_VM=-clientMEM_ARGS="-Xms512m -Xmx2048m -XX:MaxPermSize=512m"JA V A_OPTIONS="${JA V A_OPTIONS} -Xverify:none";;*)JA V A_VM=MEM_ARGS="-Xms512m -Xmx2048m";;红色标注的位置是启动时分配的内存大小,可根据实际需求进行调整。
服务器性能监控和调优识别和解决性能瓶颈
![服务器性能监控和调优识别和解决性能瓶颈](https://img.taocdn.com/s3/m/cafc22496d85ec3a87c24028915f804d2a168743.png)
服务器性能监控和调优识别和解决性能瓶颈服务器性能监控和调优:识别和解决性能瓶颈随着信息技术的迅猛发展,服务器成为现代企业和机构进行数据存储和处理的核心设备。
而服务器的性能瓶颈成为系统稳定运行和高效工作的重要影响因素。
为了确保服务器的正常运行和性能优化,对服务器性能的监控和调优显得尤为重要。
本文将探讨服务器性能监控的重要性,介绍常见的监控指标,以及如何识别和解决性能瓶颈的方法。
一、服务器性能监控的重要性服务器性能监控是指实时、准确地监控和记录服务器的运行状况和资源使用情况,以便及时发现服务器性能问题并作出相应的调整。
下面将介绍服务器性能监控的重要性。
1. 及时预警和故障排查:通过实时监控服务器的性能指标,可以在服务器出现故障或异常之前进行预警,及时采取措施避免服务器崩溃或数据丢失。
同时,监控系统还能帮助管理员进行故障排查,快速定位和修复问题。
2. 提高系统稳定性:通过监控服务器性能,可以发现并解决系统资源紧张、磁盘空间不足、网络拥塞等问题,从而提高服务器的稳定性,保证系统的可用性和可靠性。
3. 节省成本和资源:通过监控服务器的性能,可以对服务器的资源利用率进行评估和优化,减少资源的浪费,提高硬件和软件的使用效率。
这样不仅可以节省成本,还可以延长服务器的使用寿命。
二、常见的监控指标服务器性能监控需要关注一系列的指标,并根据这些指标对服务器的性能进行评估和调整。
下面将介绍一些常见的监控指标。
1. CPU利用率:监控CPU的使用率,了解CPU是否过载,并及时采取措施进行优化和负载均衡。
2. 内存利用率:跟踪内存的使用情况,确保足够的内存空间供应用程序运行。
3. 磁盘空间:监控机器硬盘空间的使用情况,避免磁盘空间不足而导致系统异常或崩溃。
4. 网络流量:通过监控网络的流量,及时识别网络拥塞或者异常访问,保障系统的网络通信质量。
5. 响应时间:监控服务的请求响应时间,快速发现和解决延迟问题,提高用户体验。
三、识别性能瓶颈的方法针对服务器出现性能瓶颈的情况,管理员需要通过一系列的方法和工具来识别问题,并采取相应的调整措施。
WebLogic的日常操作和监控
![WebLogic的日常操作和监控](https://img.taocdn.com/s3/m/c8239f0b52ea551810a68746.png)
WebLogic Server启动验证 启动验证
WebLogic的其他启动方式 的其他启动方式
• 如果想从WebLogic的console启动Managed Server, 必须配置NodeManager进程及Machine组件,并将需 要在console中启动的Managed Server target到对应的 Machine中 • 一般在3台及3台主机组成的Domain中,尽量少用 Machine配置,减少配置层次,有利于提高系统的稳定 性。
• 管理和监控接口丰富
• MBEAN • SNMP
• 与第三方实现嵌入
• Wily • Load Runner
Weblogic console简介 简介
• 基于主控Server的web应用的监控工具 • 具有良好交互性的图形化监控配置工具 • 具有强大功能的管理配置监控工具
• • • • • • 部署、配置应用和Server 停止和启动Servers 监控Domain、Server安全及性能 监控应用性能 观察Domain、Server日志 其他服务和组建的监控管理功能(监控JDBC Connection pool ,JTA,JMS等)
当前线程情况
数据库连接池使用情况
数据库连接池使用情况
• Active Connections Average Count
应用同一时刻使用的数据库连接平均数
• Active Connections Current Count
当前应用正在使用的数据库连接数
• Active Connections High Count
在这条日志信息中,它们的格式是: 时间戳,错误级别,子系统 ,机器名,Server名称,线程号,用户号,事务号,.. 信息号 ,文本信息。 如果这信息包括跟踪堆栈的信息,这些信息将紧跟在这条信息 后面。
WebLogic优化经验谈
![WebLogic优化经验谈](https://img.taocdn.com/s3/m/d6d89eb9f121dd36a22d8207.png)
WebLogic优化经验谈本文从J2EE应用架构来分别剖析系统调优,首先我们一般会从应用程序出发,去审核代码,做到代码级的优化,然后再调整应用服务器(BEA WebLogic8.1)和数据库 (Oracle9i)的参数,最后当然是调整操作系统和网络的性能(包括硬件升级)。
诚然,在我遇到的很多项目中,都是出现了性能问题后才想到调优,而且一般都是先进行系统参数调整,实在解决不了才会对代码进行检查.实际上,我们应当将代码级的调优放在应用设计时来做,测试生产时修改代码将是一件极其痛苦的事情。
第一章应用程序调优1.1.1 通用代码调优1.1.2 减小没有必要的操作对象的创建是个很昂贵的工作,所以我们应当尽量减少对象的创建,在需要的时候声明它,初始化它,不要重复初始化一个对象,尽量能做到再使用,而用完后置null有利于垃圾收集。
让类实现Cloneable接口,同时采用工厂模式,将减少类的创建,每次都是通过clone()方法来获得对象。
另外使用接口也能减少类的创建。
对于成员变量的初始化也应尽量避免, 特别是在一个类派生另一个类时。
异常抛出对性能不利。
抛出异常首先要创建一个新的对象。
Throwable接口的构造函数调用名为, fillInStackTrace()的本地(Native)方法,fillInStackTrace()方法检查堆栈,收集调用跟踪信息。
只要有异常被抛出,VM 就必须调整调用堆栈,因为在处理过程中创建了一个新的对象。
异常只能用于错误处理,不应该用来控制程序流程。
此外, 建议关闭Debug输出,尽量少用串行化、同步操作和耗时昂贵的服务(如Date())。
1.1.3 使用合适的类型当原始类型不能满足我们要求时,使用复杂类型。
String和StringBuffer 的区别自不必说了,是我们使用最多的类型,在涉及到字符运算时,强烈建议使用StringBuffer。
在做String匹配时使用intern()代替equal()。
weblogic(aix、hp-unix)参数调整记录
![weblogic(aix、hp-unix)参数调整记录](https://img.taocdn.com/s3/m/b74b8b1b4431b90d6c85c75e.png)
export WLS_MEM_ARGS_32BIT
2、调整permGen值的大小
MEM_PERM_SIZE_64BIT="-XX:PermSize=64m"
export MEM_PERM_SIZE_64BIT
64位操作系统permgen的最小值,经常会出现OOM,建议调大。
MEM_PERM_SIZE_32BIT="-XX:PermSize=256m"
export MEM_PERM_SIZE_32BIT
if [ "${JAVA_USE_64BIT}" = "true" ] ; then
MEM_PERM_SIZE="${MEM_PERM_SIZE_64BIT}"
export MEM_PERM_SIZE
else
MEM_PERM_SIZE="${MEM_PERM_SIZE_32BIT}"
export MEM_PERM_SIZE
fi
MEM_MAX_PERM_SIZE_64BIT="-XX:MaxPermSize=256m"
export MEM_MAX_PERM_SIZE_64BIT
64位操作系统permgen的最小值,经常会出现OOM,建议调大。
ulimit -n 65535
fi
fi
}
MEM_MAX_PERM_SIZE_32BIT="-XX:MaxPermSize=128m"
export MEM_MAX_PERM_SIZE_32BIT
if [ "${JAVA_USE_64BIT}" = "true" ] ; then
weblogic运维时经常遇到的问题和常用的配置
![weblogic运维时经常遇到的问题和常用的配置](https://img.taocdn.com/s3/m/f7e1850cfbd6195f312b3169a45177232f60e479.png)
weblogic运维时经常遇到的问题和常⽤的配置希望这篇能把weblogic运维时经常遇到的问题、常⽤的配置汇总到⼀起。
1、配置jvm参数:⼀般在domain启动过程中会看到以下启动的⽇志信息,如下图所⽰:图中红⾊⽅框部分为启动weblogic domain的命令。
其中包括了jvm参数以及classpath信息。
【注意】java -client是由于之前建⽴的domain是开发模式的。
⽣产模式的话,这⾥执⾏的是java -server。
⾄于-client与-server的区别,⼤家去google下吧,这⾥不介绍了。
那如何修改这个配置呢?找到setDomainEnv.cmd⽂件(linux下⾯就是setDomainEnv.sh了),位置为:weblogic11\user_projects\domains\example\bin\setDomainEnv.cmd修改⽂件中的MEM_ARGS部分,相关参数配置如下:Java代码1. call "%WL_HOME%\common\bin\commEnv.cmd"2.3. set WLS_HOME=%WL_HOME%\server4.5. if "%JAVA_VENDOR%"=="Sun" (6. set WLS_MEM_ARGS_64BIT=-Xms256m -Xmx512m7. set WLS_MEM_ARGS_32BIT=-Xms256m -Xmx512m8. ) else (9. set WLS_MEM_ARGS_64BIT=-Xms512m -Xmx512m10. set WLS_MEM_ARGS_32BIT=-Xms512m -Xmx512m11. )12.13. set MEM_ARGS_64BIT=%WLS_MEM_ARGS_64BIT%14.15. set MEM_ARGS_32BIT=%WLS_MEM_ARGS_32BIT%16.17. if "%JAVA_USE_64BIT%"=="true" (18. set MEM_ARGS=%MEM_ARGS_64BIT%19. ) else (20. set MEM_ARGS=%MEM_ARGS_32BIT%21. )22.23. set MEM_PERM_SIZE_64BIT=-XX:PermSize=128m24.25. set MEM_PERM_SIZE_32BIT=-XX:PermSize=48m26.27. if "%JAVA_USE_64BIT%"=="true" (28. set MEM_PERM_SIZE=%MEM_PERM_SIZE_64BIT%29. ) else (30. set MEM_PERM_SIZE=%MEM_PERM_SIZE_32BIT%31. )32.33. set MEM_MAX_PERM_SIZE_64BIT=-XX:MaxPermSize=256m34.35. set MEM_MAX_PERM_SIZE_32BIT=-XX:MaxPermSize=128m36.37. if "%JAVA_USE_64BIT%"=="true" (38. set MEM_MAX_PERM_SIZE=%MEM_MAX_PERM_SIZE_64BIT%39. ) else (40. set MEM_MAX_PERM_SIZE=%MEM_MAX_PERM_SIZE_32BIT%41. )42. if "%JAVA_VENDOR%"=="Sun" (43. if "%PRODUCTION_MODE%"=="" (44. set MEM_DEV_ARGS=-XX:CompileThreshold=8000 %MEM_PERM_SIZE%45. )46. )47.48. @REM Had to have a separate test here BECAUSE of immediate variable expansion on windows49.50. if "%JAVA_VENDOR%"=="Sun" (51. set MEM_ARGS=%MEM_ARGS% %MEM_DEV_ARGS% %MEM_MAX_PERM_SIZE%52. )53.54. if "%JAVA_VENDOR%"=="HP" (55. set MEM_ARGS=%MEM_ARGS% %MEM_MAX_PERM_SIZE%56. )57.58. if "%JAVA_VENDOR%"=="Apple" (59. set MEM_ARGS=%MEM_ARGS% %MEM_MAX_PERM_SIZE%60. )61.62. @REM IF USER_MEM_ARGS the environment variable is set, use it to override ALL MEM_ARGS values63.64. if NOT "%USER_MEM_ARGS%"=="" (65. set MEM_ARGS=%USER_MEM_ARGS%66. )主要就是修改-Xms、-Xmx、-XX:PermSize、-XX:MaxPermSize的参数(视具体硬件、JVM负载情况进⾏修改)。
Weblogic连接池自动重连参数设置的方法
![Weblogic连接池自动重连参数设置的方法](https://img.taocdn.com/s3/m/7610f9ad960590c69ec37648.png)
Weblogic连接池自动重连参数设置的方法
1、登录Weblogic控制台,点击JDBC-Connection Pools中的连接1(MyJDBC Connection Pool),选择Connections标签页,点击右下方的【Show】按钮,展开高级设置页面。
2、在以下页面中,进行以下设置(如下图所示):
(1)Test Frequency:测试频率。
将此项设置为60秒。
(2)Test Reserved Connections:此项为测试保留的连接。
勾选此复选框。
(3)Test Created Connections:此项为测试创建的连接。
勾选此复选框。
(4)Test Released Connections:此项为测试回收的连接。
勾选此复选框。
(5)Connection Reserve Timeout:保留连接的超时时间。
将此项设置为30秒。
(6)Connection Creation Retry Frequency:创建连接重试的频繁。
将此项设置为30秒。
3、按照上述方法,对连接2(MyJDBC Connection Pool1)进行设置。
WEBLOGIC启动JVM参数设置经验
![WEBLOGIC启动JVM参数设置经验](https://img.taocdn.com/s3/m/b87a41a165ce05087632131c.png)
WEBLOGIC启动JVM参数设置经验2011-11-01 08:41:46分类:Linux1. 堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。
32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。
我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。
典型设置:o java -Xmx3550m -Xms3550m -Xmn2g -Xss128k-Xmx3550m:设置JVM最大可用内存为3550M。
-Xms3550m:设置JVM促使内存为3550m。
此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。
-Xmn2g:设置年轻代大小为2G。
整个JVM内存大小=年轻代大小 + 年老代大小 + 持久代大小。
持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。
此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。
-Xss128k:设置每个线程的堆栈大小。
JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。
更具应用的线程所需内存大小进行调整。
在相同物理内存下,减小这个值能生成更多的线程。
但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。
o java -Xmx3550m -Xms3550m -Xss128k -XX:NewRatio=4 -XX:SurvivorRatio=4 -XX:MaxPermSize=16m -XX:MaxTenuringThreshold=0-XX:NewRatio=4:设置年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代)。
设置为4,则年轻代与年老代所占比值为1:4,年轻代占整个堆栈的1/5-XX:SurvivorRatio=4:设置年轻代中Eden区与Survivor区的大小比值。
weblogic调优(实用)
![weblogic调优(实用)](https://img.taocdn.com/s3/m/f657503710661ed9ad51f37e.png)
Execute Queue: Thread Count 15 threads 25 threads
JDBC Connection Pool: MaxCapacity 15 connnections 25 connections
通过启动管理控制台,在域(如:mydomain)> 配置 > 常规选择产品模式。
修改jdbc数据库连接池,修改为初始15,最大100。
5、WebLogic性能优化——线程数
线程数Thread Count
weblogic服务在接收到请求后,会交给后台的线程来处理,线程数决定了并发处理能力的大小。
WebLogic性能优化——线程数
修改了thread count的值后,要点击“应用(Apply)”按钮,并重启服务后,参数才能生效。
默认15,一般以服务器的CPU个数为基准,每个CPU可负担25个线程,最好不要超过50个
进入WebLogic控制台——左边窗口的mydomain——servers——点击myserver——Configuration——General(常规)——点击Advanced Options(高级选项 )的Show(显示)链接——
最下面的Configure Execute Queues(配置执行队列) 链接——weblogic.kernel.Default链接——Thread Count(线程计数)参数。的确是隐藏的比较深。修改Thread Count的值,
然后重启WebLogic就可以生效了。
6、License
主要检查4项:cpu、expiratioin、ip、units。
进入WebLogic控制台——左边窗口的mydomain——servers——点击myserver——Configuration/Tuning
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
优化设置Weblogic服务程序设置:1、设置JDK内存:修改weblogic\user_projects\domains\base_domain\bin下的setDomainEnv.cmd文件:修改前:if "%JAVA_VENDOR%"=="Sun" (set WLS_MEM_ARGS_64BIT=-Xms256m -Xmx512mset WLS_MEM_ARGS_32BIT=-Xms256m -Xmx512m) else (set WLS_MEM_ARGS_64BIT=-Xms512m -Xmx512mset WLS_MEM_ARGS_32BIT=-Xms512m -Xmx512m)set MEM_PERM_SIZE_32BIT=-XX:PermSize=48mset MEM_MAX_PERM_SIZE_32BIT=-XX:MaxPermSize=128m修改后:if "%JAVA_VENDOR%"=="Sun" (set WLS_MEM_ARGS_64BIT=-Xms512m –Xmx1024mset WLS_MEM_ARGS_32BIT=-Xms512m –Xmx1024m) else (set WLS_MEM_ARGS_64BIT=-Xms1024m –Xmx1024mset WLS_MEM_ARGS_32BIT=-Xms1024m –Xmx1024m)set MEM_PERM_SIZE_32BIT=-XX:PermSize=128mset MEM_MAX_PERM_SIZE_32BIT=-XX:MaxPermSize=256m说明:红色字体为修改的内容,具体修改值根据实际物理内存确定•-Xmx3550m:设置JVM最大堆内存为3550M。
•-Xms3550m:设置JVM初始堆内存为3550M。
此值可以设置与-Xmx相同,以避免每次JVM动态分配内存所浪费的时间。
•-XX:PermSize=256M:设置堆内存持久代初始值为256M。
(貌似是Eclipse等IDE的初始化参数)•-XX:MaxPermSize=512M:设置持久代最大值为512M。
32位操作JDK内存系统:最大可设置1.5G,如果设置过大,会导致服务无法启动64位操作JDK内存系统:最大设置为物理内存的60~80%2、设置线程数:修改weblogic\user_projects\domains\base_domain\bin下的setDomainEnv.cmd中在JAVA_OPTIONS中添加如下:set JAVA_OPTIONS=%JAVA_OPTIONS% -Dweblogic.threadpool.MinPoolSize=2000set JAVA_OPTIONS=%JAVA_OPTIONS% -Dweblogic.threadpool.MaxPoolSize=4000说明:JDK5.0以后每个线程栈大小为1M,但是操作系统对一个进程内的线程数还是有限制的,不能无限生成。
32位操作系统根据JVM最大堆内存设置;64位操作系统经验值在3000~5000左右。
3、Weblogic数据库连接池连接数设置:受Oracle数据库连接数的影响,可以参照同一时间连接数据库的用户数量,进行设置,数据库的最大连接数不能小于高峰时期同一时间连接用户的数量。
点击数据源,进入后选择连接池:初始容量:20最大容量:50容量增长:5说明:设置前得设置数据库的最大并发线程数(下面有介绍Oracle数据库线程数设置方法),因为weblogic节点的连接池最大连接数之和不能大于数据库的最大线程数。
•初始容量:要在创建连接池时创建的物理连接数。
如果无法创建这一数量的连接,创建此连接池的操作将会失败。
此连接数也是连接池将保持的最小可用物理连接数。
•最大容量:此连接池可容纳的最大物理连接数。
•容量增长:将新连接添加到连接池时创建的连接数。
不再有可用的物理连接来满足连接请求时,WebLogic Server 会创建该数量的附加物理连接并将它们添加到连接池中。
MBean 属性(不适用于应用程序模块):JDBCConnectionPoolParamsBean.CapacityIncrement。
4、Weblogic的服务设置[配置\优化]:接受积压:300登录超时:5000说明:•接受积压:对于此服务器的常规和SSL 端口,应该允许的新TCP 连接请求的积压数量。
将积压设置为0 可以防止此服务器接受某些操作系统上的所有传入连接。
MBean 属性:ServerMBean.AcceptBacklog。
最小值:0•登录超时:此服务器的默认常规(非SSL) 监听端口的登录超时。
这是允许建立新连接的最长时间。
如果值为0,表示无最大值。
MBean 属性:ServerMBean.LoginTimeoutMillis最小值:0。
最大值:100000。
安全值:5000 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服务器初始创建的执行线程的数量,设置原则:增大机器的最大并发线程数使处理器利用率达到最大。
对于服务器端操作比较多的线程,应该减少线程计数;对于客户端操作比较多的,应该增加线程计数。
并发线程数理论上等于“本地主机CPU个数+Stuck线程数”,够用即可,过大会降低系统性能2、QueueLength在等待队列里的请求数,理想状态下是03、QueueLength Threshold Percent一个百分数,当request的数量达到队列长度的这个比例的时候,weblogic会发出overflow 的标志信息4、ThreadsIncrease如果weblogic发出overflow的标志信息,weblogic会尝试增加这个数量的执行线程,以解决处理矛盾5、ThreadsMaximum最大执行线程数6、Threads Minimum最小执行线程数7、ThreadPriority线程优先级三、JDBC在service->JDBC-> JDBC Connection Pools->Configuration->name->Connections1、 Initial Capacity初始数据库物理连接数2、MaxCapacity最大数据库物理连接数3、Capacity Increment每次数据库物理连接增加数4、Statement Cache Typeprepared statements缓存的策略,LRU算法在有新的语句到来时,将最不经常被用得语句调整出缓存。
FIXED算法为先进先出的算法5、TestConnectionsOnReserveTestConnectionsOnReserve设置为false(缺省设置)。
如果此参数设置为真(true),则在连接被分配给调用者之前,都要经过测试,这会额外要求与数据库的反复连接6、Statement Cache Size宏语句设定的静态缓存,大小由JDBC连接池配置时指定,调整这个数值的大小,有利于提高系统的效率7、Login Delay创建数据库物理连接时的延时时间weblogic监控指标线程监控:DOMAIN -> 选择服务 -> Monitoring -> General -> Monitor all Active Queues... -> Monitor all Execute Threads...在这个列表中可以看到应用当前处理的线程情况,若想进一步跟踪线程,可在使用KILL -3来跟踪查看进程情况,一般情况下线程存在如下状态:A、Runnable:该状态表示线程具备所有运行条件,在运行队列中准备操作系统的调度,或者正在运行B、Wait on condition:该状态出现在线程等待某个条件的发生1、线程在等待网络的读写2、线程在 sleep,等待 sleep的时间到了时候,将被唤醒。
C、Waiting for monitor entry 和in Object.wait():每个 Monitor在某个时刻,只能被一个线程拥有,该线程就是“Active Thread”,而其它线程都是“Waiting Thread”,分别在两个队列“ Entry Set”和“Wait Set”里面等候。
在“Entry Set”中等待的线程状态是“Waiting for monitor entry”,而在“Wait Set”中等待的线程状态是“inObject.wait()”。