`
pzk417
  • 浏览: 28257 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

weblogic性能调优学习

阅读更多
Weblogic服务器性能调优

       注:在下面做的介绍都是以Weblogic8.1为例的,其它版本的Weblogic可能会有些许不同。
       1) 设置JAVA参数;
       a) 编辑Weblogic Server启动脚本文件;
l         BEA_HOME\user_projects\domains\domain-name\startWebLogic.cmd(startWebLogic.sh on Unix)
l         BEA_HOME\user_projects\domains\domain-name\startManagedWebLogic.cmd(startManagedWebLogic.sh on Unix)
b) 编辑set JAVA_OPTIONS命令,如:set JAVA_OPTIONS=-Xms256m –Xmx256m;
c) 保存,重启即可。
注:在WebLogic中,为了获得更好的性能,BEA公司推荐最小Java堆等于最大Java堆。
2) 开发模式 vs. 产品模式;
开发模式和产品模式的一些参数的默认值不同,可能会对性能造成影响,下面是对性能有影响的参数列表:
参数
开发模式默认值   产品模式默认值
Execute Queue: Thread Count
    15 threads      25 threads
JDBC Connection Pool: MaxCapacity
    15 connnections 25 connections

通过启动管理控制台,在域(如:mydomain)> 配置 > 常规选择产品模式。
3) 尽量开启本地I/O;
通过启动管理控制台,在域(如:mydomain)> 服务器 > server实例(如:myserver)> 配置 > 调整选择启用本地I/O。
注:此值也可通过手动的修改config.xml配置文件。
4) 调优执行队列线程;
a) 修改默认执行线程数
注意 在weblogic9以上的版本不支持在控制台里面设置队列数量 可以通过修改config.xml
<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>

在这里,执行队列的线程数表示执行队列能够同时执行的操作的数量。但此值不是设的越大越好,应该恰到好处的去设置它,太小了,执行队列中将会积累很多待处理的任务,太大了,则会消耗大量的系统资源从而影响整体的性能。在产品模式下默认为25个执行线程。
为了设置理想的执行队列的线程数,我们可以启动管理控制台,在域(如:mydomain)> 服务器 > server实例(如:myserver)> 监视 > 性能中监控最大负载时执行队列的吞吐量和队列中的等待请求数,据此确定理想的数值。
       理想的默认执行线程数是由多方面的因素决定的,比如机器CPU性能、总体体系架构、I/O、操作系统的进程调度机制、JVM的线程调度机制。随着CPU个数的增加,WebLogic可以近乎线性地提高线程数。线程数越多,花费在线程切换的时间也就越多;线程数越小,CPU可能无法得到充分的利用。为获取一个理想的线程数,需要经过反复的测试。在测试中,可以以25*CPU个数为基准进行调整。当空闲线程较少,CPU利用率较低时,可以适当增加线程数的大小(每五个递增)。对于PC Server和Windows 2000,则最好每个CPU小于50个线程,以CPU利用率为90%左右为最佳。
       通过启动管理控制台,在域(如:mydomain)> 服务器 > server实例(如:myserver)> Execute Queue > weblogic.kernel.Defalt > 配置中修改线程计数。
       b) 设定执行队列的溢出条件;
       Weblogic Server提供给默认的执行队列或用户自定义的执行队列自定义溢出条件的功能,当满足此溢出条件时,服务器改变其状态为“警告”状态,并且额外的再分配一些线程去处理在队列中的请求,而达到降低队列长度的目的。
       通过启动管理控制台,在域(如:mydomain)> 服务器 > server实例(如:myserver)> Execute Queue > weblogic.kernel.Defalt > 配置下面几项:
l         队列长度:此值表示执行队列中可容纳的最大请求数,默认值是65536,最后不要手动改变此值。
l         队列长度阈值百分比:此值表示溢出条件,在此服务器指出队列溢出之前可以达到的队列长度大小的百分比。
l         线程数增加:当检测到溢出条件时,将增加到执行队列中的线程数量。如果CPU和内存不是足够的高,尽量不要改变默认值“0”。因为Weblogic一旦增加后不会自动缩减,虽然最终可能确实起到了降低请求的作用,但在将来的运行中将影响程序的性能。
l         最大线程数:为了防止创建过多的线程数量,可以通过设定最大的线程数进行控制。
在实际的应用场景中,应根据具体情况适当的调整以上参数。
c) 设定执行队列监测行为
Weblogic Server能够自动监测到当一个执行线程变为“阻塞”。变为“阻塞”状态的执行线程将无法完成当前的工作,也无法再执行新请求。如果执行队列中的所有执行线程都变为“阻塞”状态,Weblogic server可能改变状态为“警告”或“严重”状态。如果Weblogic server变为“严重”状态,可以通过Node Manager来自动关闭此服务器并重新启动它。具体请参考:Node Manager Capabilities文档。
通过启动管理控制台,在域(如:mydomain)> 服务器 > server实例(如:myserver)>配置 > 调整下可配置下面几项:
l         阻塞线程最长时间:在此服务器将线程诊断为阻塞线程之前,线程必须连续工作的时间长度(秒)。默认情况下,WebLogic Server 认为线程在连续工作 600 秒后成为阻塞线程。
l         阻塞线程计时器间隔:WebLogic Server 定期扫描线程以查看它们是否已经连续工作了 "阻塞线程最长时间" 字段中指定的时间长度的间隔时间(秒)。默认情况下,WebLogic Server 将此时间间隔设置为 600 秒。
5) 调优TCP连接缓存数;
WebLogic Server用Accept Backlog参数规定服务器向操作系统请求的队列大小,默认值为50。当系统重载负荷时,这个值可能过小,日志中报Connection Refused,导致有效连接请求遭到拒绝,此时可以提高Accept Backlog 25%直到连接拒绝错误消失。对于Portal类型的应用,默认值往往是不够的。Login Timeout和SSL Login Timeout参数表示普通连接和SSL连接的超时时间,如果客户连接被服务器中断或者SSL容量大,可以尝试增加该值。
通过启动管理控制台,在域(如:mydomain)> 服务器 > server实例(如:myserver)>配置 > 调整下可配置“接受预备连接”。
6) 改变Java编译器;
标准的Java编译器是javac,但编译JSP servlets速度太慢,为了提高编译速度,可以使用sj或jikes编译器取代javac编译器。下面说说更改Java编译器:
通过启动管理控制台,在域(如:mydomain)> 服务器 > server实例(如:myserver)>配置 > 常规下改变Java 编译器,默认为javac。输入完整路径,如:c:\visualcafe31\bin\sj.exe。然后打开高级选项,在预规划到类路径填写编译 Java 代码时为 Java 编译器类路径预规划的选项,如:BEA_HOME\jdk141_02\jre\lib\rt.jar。
7) 使用Webogic Server集群提高性能;
具体关于如何配置Weblogic集群,我就不细说了。详情可参考:Introduction to WebLogic Server Clustering。
8) Weblogic EJB调优
由于EJB2.0已经很少项目在用了,EJB3.0再成熟一点,我再补充这一部分吧!
9) JDBC应用调优
JDBC Connection Pool的调优受制于WebLogic Server线程数的设置和数据库进程数,游标的大小。通常我们在一个线程中使用一个连接,所以连接数并不是越多越好,为避免两边的资源消耗,建议设置连接池的最大值等于或者略小于线程数。同时为了减少新建连接的开销,将最小值和最大值设为一致。
增加Statement Cache Size对于大量使用PreparedStatement对象的应用程序很有帮助,WebLogic能够为每一个连接缓存这些对象,此值默认为10。在保证数据库游标大小足够的前提下,可以根据需要提高Statement Cache Size。比如当你设置连接数为25,Cache Size为10时,数据库可能需要打开25*10=250个游标。不幸的是,当遇到与PreparedStatement Cache有关的应用程序错误时,你需要将Cache Size设置为0。
尽管JDBC Connection Pool提供了很多高级参数,在开发模式下比较有用,但大部分在生产环境下不需调整。这里建议最好不要设置测试表, 同时Test Reserved Connections和Test Released Connections也无需勾上。 当然如果你的数据库不稳定,时断时续,你就可能需要上述的参数打开。
最后提一下驱动程序类型的选择,以Oracle为例,Oracle提供thin驱动和oci驱动,从性能上来讲,oci驱动强于thin驱动,特别是大数据量的操作。但在简单的数据库操作中,性能相差不大,随着thin驱动的不断改进,这一弱势将得到弥补。而thin驱动的移植性明显强于oci驱动。所以在通常情况下建议使用thin驱动。而最新驱动器由于WebLogic server/bin目录下的类包可能不是最新的,请以Oracle网站为准: http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc9201.html。
10) JSP调优
l         设置jsp-param pageCheckSeconds=-1;
l         设置serlet-reload-check=-1或ServletReloadCheckSecs=-1;
l         设置jsp-param precompile=true,关闭JSP预编译选项。
分享到:
评论

相关推荐

    Weblogic性能调优.ppt

    【WebLogic性能调优】 WebLogic Server是一款由BEA Systems(现已被Oracle收购)开发的企业级Java应用服务器,常用于构建、部署和管理企业级Java应用程序。本篇内容主要聚焦于WebLogic Server的性能调优,包括多个...

    Weblogic性能调优经验.doc编程资料

    Weblogic性能调优经验.doc

    Weblogic性能调优

    ### Weblogic性能调优知识点详解 #### 一、概述 在现代企业级应用环境中,WebLogic Server作为一款高性能的应用服务器,被广泛应用于承载关键业务系统。随着业务量的增长和技术的发展,如何有效地对WebLogic Server...

    weblogic性能调优

    WebLogic Server 8.1 的性能调优是一个复杂而关键的过程,旨在确保应用程序在服务器上高效运行,同时满足用户需求和资源管理。调优涉及多个层面,包括操作系统、文件传输、数据库、Java虚拟机以及WebLogic Server...

    weblogic10性能调优

    "WLS Performance Tuning.ppt"很可能是整个调优过程的核心,包括JVM内存调优、连接池配置、后台线程管理、数据库连接优化等,这些都是提高WebLogic性能的关键环节。 "WLS10.x new feature.ppt"可能会介绍WebLogic ...

    weblogic性能优化

    weblogic性能优化,供大家一起参考学习。

    WEB服务器性能调优

    在IT行业中,Web服务器性能调优是至关重要的,它直接影响着网站的响应速度、稳定性和用户体验。本压缩包文件集中了多个文档,专门探讨了针对WebLogic和Tomcat这两个广泛应用的Java Web服务器的性能优化策略。 首先...

    Oracle_WebCenter性能调优手册

    10. 使用调优工具:熟悉Oracle提供的各种性能调优工具,例如Oracle Enterprise Manager(OEM)、WebLogic诊断框架等,能够帮助管理员更好地管理和优化环境。 通过以上这些内容,Oracle WebCenter性能调优手册旨在帮助...

    weblogic 学习资料大全

    六、WebLogic性能调优 优化WebLogic的性能对于确保服务的高效运行至关重要。这可能包括调整内存设置、JVM参数、线程池大小、数据库连接池配置等。 七、WebLogic监控与诊断 通过JMX(Java Management Extensions)和...

    Weblogic学习总结

    本篇文章将根据提供的文件信息,深入探讨WebLogic相关的知识点,包括如何将WebLogic注册为Windows服务,进行性能调优,以及设置定时重启。 首先,让我们来看看"Weblogic9.2 注册为windows服务"这个话题。在Windows...

    weblogic学习

    - "weblogic调优.ppt" 是一份关于WebLogic性能调优的演示文稿,通过PPT形式呈现优化技巧。 - "Weblogic+Server+9[1][1].2.rar" 包含WebLogic 9.1.2版本的详细信息,可能包含安装指南和配置示例。 - "Weblogic9[1].2...

    weblogic基础培训教材

    该教材包括了WebLogic的基础知识、安装过程、应用部署、性能调优以及相关工具的介绍,旨在帮助初学者快速理解和掌握WebLogic Server的使用。 一、WebLogic基础 WebLogic Server是Oracle公司的中间件产品,它是基于...

    WebLogic学习指南

    7. **性能调优** - **JVM调优**:调整Java虚拟机参数以优化应用程序性能。 - **内存管理**:理解内存结构,如堆和非堆内存,以及如何进行内存泄漏检测和管理。 8. **监控与诊断** - **日志与跟踪**:配置日志...

    Weblogic基础管理新视频教程.txt

    #### 五、WebLogic性能调优 - **调优原则**:遵循一定的性能调优原则来避免盲目操作导致问题恶化。 - **常用工具**:介绍使用JVisualVM、WLST等工具进行性能分析的方法。 - **具体实践案例**:分享实际工作中遇到的...

    Weblogic Ejb 学习笔记

    - WebLogic Server提供多种性能优化选项,如缓存管理、JVM调优、连接池配置等,以提高EJB应用的性能。 11. **EJB 3.1和以上版本的新特性** - 自动化的注解驱动编程降低了EJB的复杂性,如@Stateless、@Stateful、@...

    weblogic资料.rar

    5. **WebLogic调优**:这部分内容可能涉及到服务器配置优化,如JVM内存设置、线程池调整、数据库连接池优化等,以及性能监控工具的使用,如JMX(Java Management Extensions)和WebLogic的管理控制台。 6. **安全性...

    Weblogic学习资料

    4. **性能调优**:WebLogic Server提供了丰富的性能调优选项,包括线程池设置、内存分配、JVM参数调整、日志和诊断工具的使用等。理解和实践这些技巧对于确保应用程序的高效运行至关重要。 5. **高可用性与故障转移...

Global site tag (gtag.js) - Google Analytics