我的地盘我做主! 博客:http://tester2test.cnblogs.com/   msn:win_soft@163.com

weblogic调优

上一篇 / 下一篇  2007-08-28 08:15:04 / 个人分类:其他

weblogic调优    发表者: java123   
字体变小 字体变大

A8jT\:F'A4x:Ek0       注:在下面做的介绍都是以Weblogic8.1为例的,其它版本的Weblogic可能会有些许不同。51Testing软件测试网e/r K1R0G6@%n%LZ

51Testing软件测试网0~w7nDx9KN

       1) 设置JAVA参数;51Testing软件测试网.@8Ez"G%F

51Testing软件测试网;Q FoM C_

       a) 编辑Weblogic Server启动脚本文件;

rJ|7M;J"m}Fl0 51Testing软件测试网9y3BG-FI

l         BEA_HOME\user_projects\domains\domain-name\startWebLogic.cmd(startWebLogic.sh on Unix)

r2[:jAg;D3GXM7DY0

io4Wo!|/@[T3Zk w A0l         BEA_HOME\user_projects\domains\domain-name\startManagedWebLogic.cmd(startManagedWebLogic.sh on Unix)51Testing软件测试网F)`9j'cZy

51Testing软件测试网fE9[bC"T)x0}I

b) 编辑set JAVA_OPTIONS命令,如:set JAVA_OPTIONS=-Xms256m –Xmx256m51Testing软件测试网N9L~W|*N

A+};`9Sd p0c) 保存,重启即可。

&^Jk$_l%af5e0

E$Y8Dy(^,?(cq0注:在WebLogic中,为了获得更好的性能,BEA公司推荐最小Java堆等于最大Java堆。51Testing软件测试网(JD8_,X/yI

a/?"vm~/K+tg02) 开发模式 vs. 产品模式;51Testing软件测试网3A#_)wk9y b#?#H$JS,B

u)l;l:i4]7w k0开发模式和产品模式的一些参数的默认值不同,可能会对性能造成影响,下面是对性能有影响的参数列表:

'X2_c Q4X9q0

w@3F,O[Iv0参数

ATG E4UU$F0
51Testing软件测试网J6S b![4[5uYUW q

开发模式默认值51Testing软件测试网0G1N(k3Gf"b"E#[Q+a*A

51Testing软件测试网 gR:vyq@/Z.]o'x

产品模式默认值51Testing软件测试网*N9? i|!Q4@f5i

51Testing软件测试网9A$g+|i#@6| N

Execute Queue: Thread Count

9m [Y"_d4LuI7x9c4\0

+}.WY;CaU015 threads

1D:X@5e-m0
51Testing软件测试网#[7@;p-[aWmV

25 threads

6](nKX#Z'f'F"f4W0
51Testing软件测试网R"V%H8`.G

JDBC Connection Pool: MaxCapacity

t3i!xs.X'Z0
51Testing软件测试网I~c#xI3p

15 connnections

#A eb\#H@'{/Ns0

6cM$q.O1bfG6W@[K025 connections51Testing软件测试网e*H,hqr)C1ut

51Testing软件测试网1wk1a-o p~.q$T,F

       通过启动管理控制台,在域(如:mydomain> 配置 > 常规选择产品模式。

1sO8c7d!Y:`0 51Testing软件测试网 Q5F0G9l.@

3) 尽量开启本地I/O51Testing软件测试网lh PEB;@1@2rrT

,_nEe2^[0通过启动管理控制台,在域(如:mydomain> 服务器 > server实例(如:myserver> 配置 > 调整选择启用本地I/O51Testing软件测试网_1sJ Ft7pU

51Testing软件测试网.XOko(g4w

注:此值也可通过手动的修改config.xml配置文件。51Testing软件测试网"H)bGp hH Z F:l

51Testing软件测试网*{ea3@_2Y

4) 调优执行队列线程;

X0nm[J L0 51Testing软件测试网 J.\I Lpje!Pj,{

a) 修改默认执行线程数51Testing软件测试网 H0w0eD v5E&m

51Testing软件测试网El_^4q

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

6\#J)F1E+pn/^J0

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

,}#sxD;j0

%cb|@,Q E0       理想的默认执行线程数是由多方面的因素决定的,比如机器CPU性能、总体体系架构、I/O、操作系统的进程调度机制、JVM的线程调度机制。随着CPU个数的增加,WebLogic可以近乎线性地提高线程数。线程数越多,花费在线程切换的时间也就越多;线程数越小,CPU可能无法得到充分的利用。为获取一个理想的线程数,需要经过反复的测试。在测试中,可以以25*CPU个数为基准进行调整。当空闲线程较少,CPU利用率较低时,可以适当增加线程数的大小(每五个递增)。对于PC ServerWindows 2000,则最好每个CPU小于50个线程,以CPU利用率为90%左右为最佳。

2sc8q9Jkt+y0

$itb$H1cu:y^E0       通过启动管理控制台,在域(如:mydomain> 服务器 > server实例(如:myserver> Execute Queue > weblogic.kernel.Defalt > 配置中修改线程计数。51Testing软件测试网q#WRq){_$U*u

51Testing软件测试网\+M6} ] s%@b {

       b) 设定执行队列的溢出条件;51Testing软件测试网4i[/t Z` H*z

51Testing软件测试网'pE}(I1@LT

       Weblogic Server提供给默认的执行队列或用户自定义的执行队列自定义溢出条件的功能,当满足此溢出条件时,服务器改变其状态为“警告”状态,并且额外的再分配一些线程去处理在队列中的请求,而达到降低队列长度的目的。51Testing软件测试网OVe*t'K0K eB

51Testing软件测试网7Rgg7D5[o V {'`b

       通过启动管理控制台,在域(如:mydomain> 服务器 > server实例(如:myserver> Execute Queue > weblogic.kernel.Defalt > 配置下面几项:51Testing软件测试网 t:Q'yn Q2Nd b

;p$M pw#~%o2`B d0l         队列长度:此值表示执行队列中可容纳的最大请求数,默认值是65536,最后不要手动改变此值。

;p.T PZi0

N"UN'{lo;t0l         队列长度阈值百分比:此值表示溢出条件,在此服务器指出队列溢出之前可以达到的队列长度大小的百分比。

};G?L,eA9W3Hn0

2|y"Smh @N s#[0l         线程数增加:当检测到溢出条件时,将增加到执行队列中的线程数量。如果CPU和内存不是足够的高,尽量不要改变默认值“0”。因为Weblogic一旦增加后不会自动缩减,虽然最终可能确实起到了降低请求的作用,但在将来的运行中将影响程序的性能。

yD2f/u7s8F+l6C0 51Testing软件测试网vz{K8q?_:tKP

l         最大线程数:为了防止创建过多的线程数量,可以通过设定最大的线程数进行控制。51Testing软件测试网)ofD!Q[3WA

Jn@3o0K y/g:g0在实际的应用场景中,应根据具体情况适当的调整以上参数。51Testing软件测试网G]| n'@4Gf

51Testing软件测试网d:l&NA;x(E~F

c) 设定执行队列监测行为51Testing软件测试网XT^"c]$sy

51Testing软件测试网8uZ~B ^

Weblogic Server能够自动监测到当一个执行线程变为“阻塞”。变为“阻塞”状态的执行线程将无法完成当前的工作,也无法再执行新请求。如果执行队列中的所有执行线程都变为“阻塞”状态,Weblogic server可能改变状态为“警告”或“严重”状态。如果Weblogic server变为“严重”状态,可以通过Node Manager来自动关闭此服务器并重新启动它。具体请参考:Node Manager Capabilities文档。51Testing软件测试网%y6?0Ma m~#Z4VE6g&LxQ

51Testing软件测试网[5]\(Z2Q RRE

通过启动管理控制台,在域(如:mydomain> 服务器 > server实例(如:myserver>配置 > 调整下可配置下面几项:

:_ x+I+sd5{T(w ]A0

|/L+r"^OT7W0l         阻塞线程最长时间:在此服务器将线程诊断为阻塞线程之前,线程必须连续工作的时间长度()。默认情况下,WebLogic Server 认为线程在连续工作 600 秒后成为阻塞线程。51Testing软件测试网/jZ7k VAsO*Y ^

51Testing软件测试网*h6`Y h MW#@ {&O1[Z

l         阻塞线程计时器间隔:WebLogic Server 定期扫描线程以查看它们是否已经连续工作了 "阻塞线程最长时间" 字段中指定的时间长度的间隔时间()。默认情况下,WebLogic Server 将此时间间隔设置为 600 秒。51Testing软件测试网V3es H2X j5P'Z VR%v

51Testing软件测试网i+\eL _~0E

5) 调优TCP连接缓存数;

;XFk]{ K0 51Testing软件测试网)F`c I5rP

WebLogic ServerAccept Backlog参数规定服务器向操作系统请求的队列大小,默认值为50。当系统重载负荷时,这个值可能过小,日志中报Connection Refused,导致有效连接请求遭到拒绝,此时可以提高Accept Backlog 25%直到连接拒绝错误消失。对于Portal类型的应用,默认值往往是不够的。Login TimeoutSSL Login Timeout参数表示普通连接和SSL连接的超时时间,如果客户连接被服务器中断或者SSL容量大,可以尝试增加该值。

]8e*tHgnn0 51Testing软件测试网GmJJ;G

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

K.~6L zF mA0

M)c3ZQ CMn q6Tz0Y06) 改变Java编译器;

l9eNU5|,Gw0 51Testing软件测试网.EQZ:Z"fSU.q

标准的Java编译器是javac,但编译JSP servlets速度太慢,为了提高编译速度,可以使用sjjikes编译器取代javac编译器。下面说说更改Java编译器:51Testing软件测试网,vo T M3`'[;j ?+^

Z{~dIV{ V(O,k0通过启动管理控制台,在域(如:mydomain> 服务器 > server实例(如:myserver>配置 > 常规下改变Java 编译器,默认为javac。输入完整路径,如:c:\visualcafe31\bin\sj.exe。然后打开高级选项,在预规划到类路径填写编译 Java 代码时为 Java 编译器类路径预规划的选项,如:BEA_HOME\jdk141_02\jre\lib\rt.jar

pN-d)UW_i0 51Testing软件测试网9gpv llItB

7) 使用Webogic Server集群提高性能;51Testing软件测试网Q$[4cb,RO+](yB/D

p+@;sc)ln'sVb0FBP0具体关于如何配置Weblogic集群,我就不细说了。详情可参考:Introduction to WebLogic Server Clustering

3H_+W,JhI4k0

]n9\Mw.p08) Weblogic EJB调优

x.lh;noQF&St0 51Testing软件测试网*h{4\sGG&u

由于EJB2.0已经很少项目在用了,EJB3.0再成熟一点,我再补充这一部分吧!

u%A O W c N W0F X0 51Testing软件测试网c5M` A5A0Qh1S9cT b

9) JDBC应用调优51Testing软件测试网%{ d p)r0E ~c

51Testing软件测试网n2u&p7q$x0r [

JDBC Connection Pool的调优受制于WebLogic Server线程数的设置和数据库进程数,游标的大小。通常我们在一个线程中使用一个连接,所以连接数并不是越多越好,为避免两边的资源消耗,建议设置连接池的最大值等于或者略小于线程数。同时为了减少新建连接的开销,将最小值和最大值设为一致。

P.^)bdo b9D0

K#tVv M%n3uLn0增加Statement Cache Size对于大量使用PreparedStatement对象的应用程序很有帮助,WebLogic能够为每一个连接缓存这些对象,此值默认为10。在保证数据库游标大小足够的前提下,可以根据需要提高Statement Cache Size。比如当你设置连接数为25,Cache Size10,数据库可能需要打开25*10=250个游标。不幸的是,当遇到与PreparedStatement Cache有关的应用程序错误时,你需要将Cache Size设置为051Testing软件测试网%c'n`| X6p,e

51Testing软件测试网e o^g.MC A

尽管JDBC Connection Pool提供了很多高级参数,在开发模式下比较有用,但大部分在生产环境下不需调整。这里建议最好不要设置测试表, 同时Test Reserved ConnectionsTest Released Connections也无需勾上。 当然如果你的数据库不稳定,时断时续,你就可能需要上述的参数打开。51Testing软件测试网 [ ^wEd'~

1Qe5v,f9V o.aX-YO4O0最后提一下驱动程序类型的选择,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

,| |{2{"o|p2h0 51Testing软件测试网"Wu] i!LT V3wO

10) JSP调优51Testing软件测试网0zm#C%p*z9Be |-z

Yf|1J$t6} L\/Ot0l         设置jsp-param pageCheckSeconds=-1

~Rdo!F0 51Testing软件测试网R [%t6Wp O7[!K$r

l         设置serlet-reload-check=-1ServletReloadCheckSecs=-151Testing软件测试网'M%i!R p^9aY

51Testing软件测试网 AmtCmF8C

l         设置jsp-param precompile=true,关闭JSP预编译选项。51Testing软件测试网kJ2r"b$o7|(Rw


9~/Sj-Zt;H8W051Testing软件测试网!}r`#N4X&d
测试者家园 2007-05-08 23:04 发表评论

)ODmt]l051Testing软件测试网7y,? mX#x%n.L
Link URL: http://www.cnblogs.com/tester2test/archive/2007/05/08/739632.html

TAG:

 

评分:0

我来说两句

Open Toolbar