`
leo_dream
  • 浏览: 132247 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Weblogic服务器的性能调试优化方案

    博客分类:
  • java
阅读更多

转载自:http://www.enet.com.cn/article/2008/0626/A20080626306511.shtml

在下面做的介绍都是以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(startManagedWebLogic.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)> 监视> 性能中监控最大负载时执行队列的吞吐量和队列中的等待请求数,据此确定理想的数值。
理想的默认执行线程数是由多方面的因素决定的,比如机器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 > 配置下面几项:
队列长度:此值表示执行队列中可容纳的最大请求数,默认值是65536,最后不要手动改变此值。
队列长度阈值百分比:此值表示溢出条件,在此服务器指出队列溢出之前可以达到的队列长度大小的百分比。
线程数增加:当检测到溢出条件时,将增加到执行队列中的线程数量。如果CPU和内存不是足够的高,尽量不要改变默认值“0”。因为Weblogic一旦增加后不会自动缩减,虽然最终可能确实起到了降低请求的作用,但在将来的运行中将影响程序的性能。
最大线程数:为了防止创建过多的线程数量,可以通过设定最大的线程数进行控制。
在实际的应用场景中,应根据具体情况适当的调整以上参数。
c) 设定执行队列监测行为
Weblogic Server能够自动监测到当一个执行线程变为“阻塞”。变为“阻塞”状态的执行线程将无法完成当前的工作,也无法再执行新请求。如果执行队列中的所有执行线程都变为“阻塞”状态,Weblogic server可能改变状态为“警告”或“严重”状态。如果Weblogic server变为“严重”状态,可以通过Node Manager来自动关闭此服务器并重新启动它。具体请参考:Node Manager Capabilities文档。
通过启动管理控制台,在域(如:mydomain)> 服务器> server实例(如:myserver)>配置> 调整下可配置下面几项:
阻塞线程最长时间:在此服务器将线程诊断为阻塞线程之前,线程必须连续工作的时间长度(秒)。默认情况下,WebLogic Server 认为线程在连续工作600 秒后成为阻塞线程。
阻塞线程计时器间隔: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调优
设置jsp-param pageCheckSeconds="-1;
设置serlet-reload-check="-1或ServletReloadCheckSecs=-1;
设置jsp-param precompile="true,关闭JSP预编译选项。

分享到:
评论

相关推荐

    Weblogic使用手册(中文).pdf

    WebLogic是一个广泛使用的企业级中间件产品,提供了完整的...通过深入学习这份WebLogic使用手册,开发者和系统管理员可以有效地配置、管理和优化WebLogic服务器,进而在实际工作中提高生产效率和解决复杂问题的能力。

    Weblogic加Apache的负载均衡以及群集配置

    Weblogic与Apache结合进行负载均衡和群集配置是一种常见的企业级解决方案,用于提高Web应用程序的可用性和性能。这种配置方式通常适用于大型系统,通过分散负载到多个服务器,防止单点故障,确保服务的高可用性。 1...

    WebLogic监控程序

    监控程序的目的是确保WebLogic服务器的稳定性和高效运行,通过收集和分析服务器的运行时数据,帮助管理员识别潜在问题并进行调优。 该程序的核心功能包括: 1. **日志记录**:能够将WebLogic的监控信息写入文件,...

    WebLogic集群与分布式

    源码在WebLogic集群中的作用可能是指开发者可以访问WebLogic的源代码,以便进行深入的调试、定制和性能优化。对于复杂的企业级应用,源码级别的理解和控制有时是必要的。而工具则是指用于管理和监控WebLogic集群的...

    weblogic使用手册大全详解(中文)

    - 性能监控对于确保WebLogic服务器稳定运行至关重要,可以通过管理控制台的“Monitoring”页面进行性能监控。 - **集群数据** - 集群配置允许在多台服务器之间实现负载均衡和高可用性。 - **服务器安全** - ...

    Weblogic在AIX下的安装和调试.txt

    2. **网络配置**:确认Weblogic服务器的监听地址和端口,例如`http://***.***.***.***:7001/console`,这将用于Weblogic的远程管理和监控。 3. **内存参数调整**:为了优化性能,需要调整JVM的内存参数。编辑`/bea/...

    weblogic 11g 64位 各版本

    - 支持集群部署,可以创建多个WebLogic服务器实例以实现负载均衡和故障转移,提高服务的可用性和性能。 - 通过复制和共享服务器状态,实现了session复制和故障恢复,确保服务的连续性。 5. **安全特性**: - ...

    weblogic_java_

    标题“weblogic_java_”暗示了我们即将探讨的是关于Java在WebLogic服务器上的应用,特别是与J2EE(Java 2 Platform, Enterprise Edition)相关的开发实践。WebLogic Server是Oracle公司提供的一个企业级Java EE应用...

    weblogic英文官方文档.rar

    WebLogic Server是Oracle公司的一款企业级Java应用服务器,主要用于构建、部署和管理分布式应用程序。WebLogic 10g是该产品的一个版本,发布于2006年,它支持Java EE 5规范,并且提供了丰富的功能和服务来满足企业级...

    WebLogic Server 故障诊断

    根据给定的信息,本文将详细探讨 WebLogic Server 的故障诊断方法与步骤,旨在为用户提供一套系统性的解决方案。文章首先简要介绍了故障诊断的基本流程,随后深入讲解了 Thread Dump 的概念及其在故障诊断中的应用,...

    BEA WebLogic Server 9.0 技术白皮书(中文)

    5. **性能优化**: WebLogic Server 9.0 引入了改进的JVM(Java虚拟机)和内存管理策略,提升了运行时性能。同时,它支持JRockit JVM,提供更高级别的性能分析和调优功能。 6. **安全增强**: 除了WS-Security外,9.0...

    eclipse plugins weblogic

    - 定期更新插件以获取最新的特性、安全补丁和性能优化。 - 在团队环境中,使用版本控制系统同步 Eclipse 工作空间和插件设置,确保一致性。 - 学习并熟练掌握插件的快捷键和自定义设置,以提高开发效率。 7. **...

    weblogic9.2的配置及部署

    WebLogic Server 是一款高性能的企业级 Java 应用服务器,由 Oracle 公司开发并维护。WebLogic 9.2 版本是该系列中的一个重要版本,它提供了强大的中间件平台支持,特别适合于构建复杂的企业级应用程序和服务。本文...

    64位weblogic--windows安装部署及常见问题解决

    - MIME-Type配置问题:在WebLogic服务器配置中添加或修改MIME-Type映射。 - 应用不存在:确认部署的应用是否已成功上传到WebLogic并正确配置。 - `ClassNotFoundException`: 检查是否所有必要的库都在类路径中,或者...

    jdbmonitor跟踪weblogic显示SQL语句.zip (含教程)

    通过启用jdbmonitor,你可以看到每一次请求背后执行的SQL,这对于优化数据库查询、定位性能瓶颈或调试SQL问题都非常有帮助。 使用jdbmonitor的步骤大致如下: 1. **下载与配置**:首先,你需要下载jdbmonitor.jar...

    weblogic基本配置_视频

    【标题】"Weblogic基本配置_视频"涵盖了WebLogic服务器的基础设置和管理,特别是数据库连接池的配置。WebLogic Server是Oracle公司的一款企业级Java应用服务器,它支持Java EE(Enterprise Edition)应用程序,并且...

    weblogic配置说明(正式版)

    - **监控与性能调优**:利用WebLogic内置的管理工具监控服务器状态,分析性能瓶颈,调整相关参数以提升系统性能。 ### 3. 结论 理解并正确配置WebLogic的各项参数是保障服务稳定性和性能的关键。随着业务的增长和...

    jbuilder7和weblogic7整合开发手册

    6. **性能优化**:JBuilder7的性能分析工具可以帮助开发者监测和优化应用程序的性能,确保在WebLogic7上的运行效果最佳。 7. **协同开发**:JBuilder7支持版本控制和团队协作,开发者可以与其他团队成员共享项目,...

    weblogic12c(12.1.1)

    6. **性能优化**:通过JRockit JVM(在12.1.1版本中,JRockit被Oracle HotSpot JVM替代)和其他性能调优工具,WebLogic提供了优秀的运行效率和内存管理。 7. **安全特性**:内置了丰富的安全特性,包括身份验证、...

Global site tag (gtag.js) - Google Analytics