`

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=-Xms<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="256" unitname="m">256m</chmetcnv> –Xmx<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="256" unitname="m">256m</chmetcnv>

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) 修改默认执行线程数

在这里,执行队列的线程数表示执行队列能够同时执行的操作的数量。但此值不是设的越大越好,应该恰到好处的去设置它,太小了,执行队列中将会积累很多待处理的任务,太大了,则会消耗大量的系统资源从而影响整体的性能。在产品模式下默认为25个执行线程。

为了设置理想的执行队列的线程数,我们可以启动管理控制台,在域(如:mydomain> 服务器 > server实例(如:myserver> 监视 > 性能中监控最大负载时执行队列的吞吐量和队列中的等待请求数,据此确定理想的数值。

理想的默认执行线程数是由多方面的因素决定的,比如机器CPU性能、总体体系架构、I/O、操作系统的进程调度机制、JVM的线程调度机制。随着CPU个数的增加,WebLogic可以近乎线性地提高线程数。线程数越多,花费在线程切换的时间也就越多;线程数越小,CPU可能无法得到充分的利用。为获取一个理想的线程数,需要经过反复的测试。在测试中,可以以25*CPU个数为基准进行调整。当空闲线程较少,CPU利用率较低时,可以适当增加线程数的大小(每五个递增)。对于PC ServerWindows 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 ServerAccept Backlog参数规定服务器向操作系统请求的队列大小,默认值为50。当系统重载负荷时,这个值可能过小,日志中报Connection Refused,导致有效连接请求遭到拒绝,此时可以提高Accept Backlog 25%直到连接拒绝错误消失。对于Portal类型的应用,默认值往往是不够的。Login TimeoutSSL Login Timeout参数表示普通连接和SSL连接的超时时间,如果客户连接被服务器中断或者SSL容量大,可以尝试增加该值。

通过启动管理控制台,在域(如:mydomain> 服务器 > server实例(如:myserver>配置 > 调整下可配置“接受预备连接”。

6) 改变Java编译器;

标准的Java编译器是javac,但编译JSP servlets速度太慢,为了提高编译速度,可以使用sjjikes编译器取代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 Size10,数据库可能需要打开25*10=250个游标。不幸的是,当遇到与PreparedStatement Cache有关的应用程序错误时,你需要将Cache Size设置为0

尽管JDBC Connection Pool提供了很多高级参数,在开发模式下比较有用,但大部分在生产环境下不需调整。这里建议最好不要设置测试表, 同时Test Reserved ConnectionsTest 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=-1ServletReloadCheckSecs=-1

l 设置jsp-param precompile=true,关闭JSP预编译选项。

其它资源: http://www.chinaitpower.com/2005September/2005-09-13/206361.html

分享到:
评论

相关推荐

    Weblogic8性能调优基本方案

    Weblogic 是用于开发、集成、部署和管理大型分布式 Web 应用、网络应用和数 据库应用的 Java 应用服务器。由于部署在 weblogic 上的一般来说都是大数据量 高并发量的应用,所以...Weblogic 性能调优的基本方案供参考。

    AIX服务器weblogic性能调优

    AIX服务器weblogic性能调优,解决在aix服务器下用weblogic做应用服务器的性能问题。

    WEB服务器性能调优

    总共有七八个文档,讲解WebLogic服务器性能参数及如何调优. WebLogic平台下J2EE调优攻略.doc WebLogic服务器性能参数.doc ....

    WebLogic Server 10 + 性能调优

    超强(WLS/Java) 性能研讨会WebLogic Server 性能调优,2012的资料,纲领式的PPT,70余页,个人感觉是个好资料,值得推荐,网上收集而来!

    Weblogic学习总结

    Weblogic9.2 注册为windows服务 weblogic9.2测试性能调优 Weblogic服务器性能调优 weblogic注册成为Windows服务 设置WebLogic定时重启

    weblogic平台J2EE调优策略

    第二章 应用服务器调优 2.1 JVM调优 2.1.1 垃圾收集和堆大小 2.1.2 jRockit调优 2.2 Server调优 2.2.1 尽量使用本地I/O库 2.2.2 调整默认执行线程数 2.2.3 调整连接参数 2.2.4 创建新的执行队列 2.3 JDBC调优 2.3.1 ...

    WEBLOGIC性能调优

    登录WEBLOGIC控制台,选择服务器-某服务器-监视-性能,可查看到当前最大线程数量。由于WEBLOGIC9取消了在页面进行调整线程大小的功能,需要在后台进行修改。 2. 修改线程池大小 3. 修改传输通讯包大小 4. 修改...

    WebLogicServer性能调优

    虽然成为象WebLogicServer这样广泛使用的产品需要具备很多特性,但性能绝对是必不可少的。 良好的编程习惯在帮助应用运行方面起了很大的作用,但是仅有它们还是不够的。应用服务器必须能够在多种硬件和操作系统之间...

    J2EE性能调优.docx

    用 java 进行开发,尤其是一些大型企业项目,性能调优的工作很重要。 本文提供的调 优措施,适用于 J2EE 应用开发,Web 服务器以 WebLogic 为示例。 希望对从事 java 开发的同事能有所帮助。

    用Apache为WebLogic提速

    通过Apache为Weblogic中间件服务器提速,并可以搭建Weblogic集群,比Proxy模式的集群更稳定,更高速

    weblogic和oracle的性能优化

    主要是讲解在高并发系统部署下, 怎么实现性能和服务器配置的平衡最大化。

    WebLogic调优文档

    WebLogic8以上应用服务器的性能调优,涉及到各个线程数、虚拟机等参数的调优,对系统应用比较有效

    weblogic性能优化

    目前weblogic中间件应用在服务器越来越多,基本都面临着性能调优的问题

    weblogic快速入门

    资料是公司内部培训的,非常真贵,包括从weblogic的介绍、安装、管理、domain的创建管理,程序的部暑、JMS、JDBC、JNDI、JTA、SNMP、集群(Cluster)、服务器的负载均衡、weblogic的日常维护、性能调优、故障排查,...

    weblogic10白皮书

    调优的服务器集群添加到 Oracle WebLogic Server 标准版,企业版可帮助 用户实现能够适应计划停机和意外停机的 IT 基础架构。为确保卓越的应 用程序性能,它还为生产系统提供了无与伦比的深入诊断功能,无需任何附 ...

    WebLogic开发优化宝典

    首先我们一般会从应用程序出发,去审核代码,做到代码级的优化,然后再调整应用服务器(BEA WebLogic)和数据库 (Oracle)的参数,最后当然是调整操作系统和网络的性能(包括硬件升级)。诚然,在我遇到的很多项目中,都是...

    resin-jvm 调优

    可通过如下参数进行调整:-server 启用服务器模式(如果CPU多,服务器机建议使用此项) -Xms,-Xmx一般设为同样大小。 800m -Xmn 是将NewSize与MaxNewSize设为一致。320m -XX:PerSize 64m -XX:NewSize 320m 此...

    工程概论3_作业11

    3、精通主要应用服务器(Weblogic/WebSphere/Tomcat等)的配置、使用和优化,熟悉Linux操作系统 4、精通web应用的性能瓶颈和调优方式

    unix大全(涵盖了UNIX学习的方方面面)

    整理了包含了unix内核 unix管理 unix调优81文档 1.突破TCP-IP过滤/防火墙进入内网(icmp篇) 2.informix-4gl 7.2编写的通用菜单函数 3.Makefile工具的使用 4.vi用法集锦 5.SCO核心参数详细说明 6.SCO Unix 制作系统...

Global site tag (gtag.js) - Google Analytics