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

weblogic调优

上一篇 / 下一篇  2007-06-27 17:42:50 / 个人分类:其他

weblogic调优    发表者: java123   
字体变小 字体变大
51Testing软件测试网'}dHFu?

       注:在下面做的介绍都是以Weblogic8.1为例的,其它版本的Weblogic可能会有些许不同。51Testing软件测试网^0m w,c:] D9?z

,A:?7J?j4iz0       1) 设置JAVA参数;

n+g}__0 51Testing软件测试网"y9x3_fF M4UY

       a) 编辑Weblogic Server启动脚本文件;51Testing软件测试网Wb8z KW W/]n3T O

51Testing软件测试网5G,e4YR$j#p%s RkX

l         BEA_HOME\user_projects\domains\domain-name\startWebLogic.cmd(startWebLogic.sh on Unix)51Testing软件测试网8r"z-_t$Z2Rv

51Testing软件测试网*Lk)R"?eT(JIl

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

/c}"M!rak _0 51Testing软件测试网n,_F u|K

b) 编辑set JAVA_OPTIONS命令,如:set JAVA_OPTIONS=-Xms256m –Xmx256m51Testing软件测试网d,mHip

51Testing软件测试网7[3fWe5I4[U k o[

c) 保存,重启即可。51Testing软件测试网0W;Q.g/r$qpX

51Testing软件测试网5AKogy,Ii

注:在WebLogic中,为了获得更好的性能,BEA公司推荐最小Java堆等于最大Java堆。

Ig2Bek0 51Testing软件测试网^U@7T:Z O_:q

2) 开发模式 vs. 产品模式;

@jh0R/kg0

W_\i0S*HmE0开发模式和产品模式的一些参数的默认值不同,可能会对性能造成影响,下面是对性能有影响的参数列表:

B&K Vm S'],FVMe q0
51Testing软件测试网a8TyPC X

参数

O~)N{y,D0
51Testing软件测试网UW2x6Xh+Z#G K

开发模式默认值51Testing软件测试网2W\IHn

51Testing软件测试网.g$I^b-b3D(~m?;XY

产品模式默认值51Testing软件测试网$x0Md!c^{-?4~8d

V b;^&HY7WYw+ay0Execute Queue: Thread Count51Testing软件测试网'u-M4oM+wA

51Testing软件测试网u`[V!B

15 threads

Zng%N'bP+w0

7QfcU,^ x6e025 threads51Testing软件测试网Mc?%yj Dg5C

51Testing软件测试网tbH2T0U8@N q

JDBC Connection Pool: MaxCapacity51Testing软件测试网 d f(N[e0t

51Testing软件测试网i/A |n mZ!t/P

15 connnections

t!?gV%L t#L0
51Testing软件测试网D+p2uMe`bo%}|

25 connections51Testing软件测试网;sY$b6S` ES q-gb+N

,{!tD,o-X\M0       通过启动管理控制台,在域(如:mydomain> 配置 > 常规选择产品模式。51Testing软件测试网_8T_4Np

t r6k;f"o#hC G03) 尽量开启本地I/O

,p)IZpQ*P0

+W(GArG/w9P0通过启动管理控制台,在域(如:mydomain> 服务器 > server实例(如:myserver> 配置 > 调整选择启用本地I/O

M.H$o N4t+{L]0

'j5Hb c[0注:此值也可通过手动的修改config.xml配置文件。

$~4m'mq+J8@\ ~x0 51Testing软件测试网7Ta0b9F#O({,w4@

4) 调优执行队列线程;51Testing软件测试网&o r)P$l]6P_Q

Fl KLg!ln[$c4S0a) 修改默认执行线程数

4q2U0[ l be0A~0 51Testing软件测试网X5w*jw\'m QRuw

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

"Z5n'|9K8B5GS1L(|-R0 51Testing软件测试网8a#~u-IcI

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

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

g/[4BvC9l[0       通过启动管理控制台,在域(如:mydomain> 服务器 > server实例(如:myserver> Execute Queue > weblogic.kernel.Defalt > 配置中修改线程计数。51Testing软件测试网2dOA7mfs)F/O1w

51Testing软件测试网q'MPL{9[8Ub

       b) 设定执行队列的溢出条件;

` s Db;{Ly.v1?0

eSe6~\ mv1p!X7E0       Weblogic Server提供给默认的执行队列或用户自定义的执行队列自定义溢出条件的功能,当满足此溢出条件时,服务器改变其状态为“警告”状态,并且额外的再分配一些线程去处理在队列中的请求,而达到降低队列长度的目的。

#rzUA!|K7o~%P0

n;O5R&K,Pt5]$F{0       通过启动管理控制台,在域(如:mydomain> 服务器 > server实例(如:myserver> Execute Queue > weblogic.kernel.Defalt > 配置下面几项:

1w]6V,fd0

y7j!_WMTw0l         队列长度:此值表示执行队列中可容纳的最大请求数,默认值是65536,最后不要手动改变此值。51Testing软件测试网 Nj q]$P2J w#M

Z JF%bbk)}0l         队列长度阈值百分比:此值表示溢出条件,在此服务器指出队列溢出之前可以达到的队列长度大小的百分比。51Testing软件测试网z1C1_zf;HC~8Xw!V

7BMN*]5xk0l         线程数增加:当检测到溢出条件时,将增加到执行队列中的线程数量。如果CPU和内存不是足够的高,尽量不要改变默认值“0”。因为Weblogic一旦增加后不会自动缩减,虽然最终可能确实起到了降低请求的作用,但在将来的运行中将影响程序的性能。51Testing软件测试网o5v#S6iMzA8]5{

51Testing软件测试网b7E'q#OD1h

l         最大线程数:为了防止创建过多的线程数量,可以通过设定最大的线程数进行控制。

F(rDcL D!}9s&}0

[m2m3C` ?!z7o0在实际的应用场景中,应根据具体情况适当的调整以上参数。51Testing软件测试网 I3mB+I6Np xio0H6a

51Testing软件测试网!gO#n1K4bP

c) 设定执行队列监测行为51Testing软件测试网EU#g;m)xg!x4_

Oy;J~i.Nu0Weblogic Server能够自动监测到当一个执行线程变为“阻塞”。变为“阻塞”状态的执行线程将无法完成当前的工作,也无法再执行新请求。如果执行队列中的所有执行线程都变为“阻塞”状态,Weblogic server可能改变状态为“警告”或“严重”状态。如果Weblogic server变为“严重”状态,可以通过Node Manager来自动关闭此服务器并重新启动它。具体请参考:Node Manager Capabilities文档。51Testing软件测试网2U#U5h+Nf9b(ND

kD6O~A!UT0通过启动管理控制台,在域(如:mydomain> 服务器 > server实例(如:myserver>配置 > 调整下可配置下面几项:51Testing软件测试网O*T/_q%}j;n#^*f:t

51Testing软件测试网+|ixup

l         阻塞线程最长时间:在此服务器将线程诊断为阻塞线程之前,线程必须连续工作的时间长度()。默认情况下,WebLogic Server 认为线程在连续工作 600 秒后成为阻塞线程。

.GZl"vBA8UMQ0 51Testing软件测试网[XZ {D

l         阻塞线程计时器间隔:WebLogic Server 定期扫描线程以查看它们是否已经连续工作了 "阻塞线程最长时间" 字段中指定的时间长度的间隔时间()。默认情况下,WebLogic Server 将此时间间隔设置为 600 秒。

;OWB eM+G0 51Testing软件测试网OrV,h J_nz

5) 调优TCP连接缓存数;51Testing软件测试网Y4|nG}d u5_

51Testing软件测试网G3u9L+~$er

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

2z N9{nlJ0 51Testing软件测试网}^z|%\,eO

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

gZg%J!O \ML;AXg0 51Testing软件测试网_ao w,~d_$zE

6) 改变Java编译器;51Testing软件测试网3^s Zc~

51Testing软件测试网A&[h~W+~m L

标准的Java编译器是javac,但编译JSP servlets速度太慢,为了提高编译速度,可以使用sjjikes编译器取代javac编译器。下面说说更改Java编译器:51Testing软件测试网Jp6m:Lk%H

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

X.^zpGD.pY0

,I [v^:v07) 使用Webogic Server集群提高性能;

*o#R T3j%FAzn4e;f/w0

HL4]tYM0具体关于如何配置Weblogic集群,我就不细说了。详情可参考:Introduction to WebLogic Server Clustering

%Sr"yz(tX0 51Testing软件测试网 crTJ4e-p

8) Weblogic EJB调优51Testing软件测试网`E+v0Kn zq"f4Y

51Testing软件测试网Q})G^9dS#T;m

由于EJB2.0已经很少项目在用了,EJB3.0再成熟一点,我再补充这一部分吧!51Testing软件测试网9O!Fa*w,F(s Q{!A

#ZJ'C [Ns09) JDBC应用调优

\&R9V8` Y-c6cEX1j0 51Testing软件测试网K;{.VtMj$pN3wk

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

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

51Testing软件测试网gNCf(Uh.]{

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

51Testing软件测试网7u4z7yiNB h:p

最后提一下驱动程序类型的选择,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.html51Testing软件测试网V-S5{n[aA:|

51Testing软件测试网M n|7kosvr,o.z

10) JSP调优51Testing软件测试网COjy[tW$]

51Testing软件测试网n S&jVz[

l         设置jsp-param pageCheckSeconds=-151Testing软件测试网-y8i N}G7o$W5r

51Testing软件测试网-p M Dz!r%nptP

l         设置serlet-reload-check=-1ServletReloadCheckSecs=-151Testing软件测试网cLoF3f9egN

51Testing软件测试网W,W N }2ik*DML

l         设置jsp-param precompile=true,关闭JSP预编译选项。51Testing软件测试网j"fo4a.s'{ ET|

51Testing软件测试网;{lnjL @z

-t#d(L(W,~ HF{4N0
测试者家园 2007-05-08 23:04 发表评论
51Testing软件测试网J,Fq/C1a].m
51Testing软件测试网6kF"pS*zy1y1M
Link URL: http://www.cnblogs.com/tester2test/archive/2007/05/08/739632.html

TAG:

 

评分:0

我来说两句

Open Toolbar