Go ahead every day !

WebSphere 和 DB2 调优指南--摘录

上一篇 / 下一篇  2009-01-06 15:25:10 / 个人分类:性能测试

IBM WebSphere Portal Web Content ManagerDB2调优指南51Testing软件测试网$Yi5?8m!dG L

  正在寻找一个资源中心来调优WebSphere® Portal Web Content ManagementIBM® DB2®for Linux®, UNIX®, and Windows®环境?本文描述该环境独特的、需要特殊考虑的各个部分。您将学习如何调优Application ServerWebSpherePortal。作为良好的开端,您将学习一些应该设置为指定值的各种注册表变量和数据库管理器及数据库配置参数。最后,持续维护小节提供了如何使DB2系统随系统增长仍然高效运行的指导原则。51Testing软件测试网 y ~4t%D4D/g
  对环境进行性能调优51Testing软件测试网O`'Sq5d|1|e
  WebSphere Portal环境的调优涉及到对该环境的不同的系统和组件的调优和配置。本节讨论一些通用的概念,并详细描述本文评测环境所使用的配置的特征。WebSpherePortal Web Content Management (WCM) AIX® Power4评测环境的配置和调优是基于WebSpherePortal AIX Power4环境的,IBM WebSphere Portal Version 6.0 Tuning Guide对后者作了详细阐述。用于评测WCM的环境的所有不同之处在本章中都会明确提出。对任何WebSphere Portal环境的完整的调优和配置方法包括:51Testing软件测试网0jI*|*T&`0o]6lr
  配置应用服务器和为这个应用服务器定义的资源
51Testing软件测试网w~'Br9t1Z&x
  确定用于扩展环境的复制策略
51Testing软件测试网'?)W;vGZ \
  调优数据库和数据库服务器
51Testing软件测试网4~kE1~2N)Z D[z
  调优目录服务器和它的数据库
51Testing软件测试网8C4o6rZd\ sc
  调优web服务器
51Testing软件测试网4Y\,I1Z4x;JY
  调优操作系统和网络
51Testing软件测试网 UO7`@#OcCE7u+V;t
  调优WebSphere Portal服务
51Testing软件测试网!Z1B `W:Iw g6Siv
  在调优各个系统时,首先应该具备一个基准,并监视性能指标,以确定是否应该更改某个参数,当作出更改时,也要监视性能指标,以确定更改的效果。
51Testing软件测试网|c&Fij-eI ^
  了解环境
51Testing软件测试网p/g+V?6x e,n
  WebSphere Portal V6.0使用附加的服务器来提供其功能。在我的评测环境中,除了portal服务器本身以外,还有一个Web服务器,一个数据库服务器和一个目录服务器,这些服务器放在WebSphere Portal系统之外的单独的系统上。采用这种配置的主要好处是可以避免同一个系统上的多个服务器之间争用资源。如果其他服务器与WebSpherePortal服务器争用资源,就会影响系统可达到的吞吐率。在本报告中,用于评测的配置将IBM HTTP ServerWebSpherePortal放在同一个系统上。
uG}^ \$]3Td)N0
  应用服务器调优
51Testing软件测试网*lqS I2[b2a)F
  在WebSphere ApplicationServer中,应用服务器的配置和调优有很多方面。我发现,本文和IBM WebSphere Portal Version 6.0Tuning Guide中描述的那些方面对于WebSphere Portal在我们的实验环境中正确、高效地运行非常关键。51Testing软件测试网 e"P5r9l G*PP
  根据我对于本文描述的工作负载的经验,表1展示了与用于Power4平台的AIXIBM WebSphere Portal Version 6.0 Tuning Guide不同的一些配置:
(n$aW&te%n-Dp0
  表1.应用服务器参数
51Testing软件测试网Y|m+Ay+zWO

参数51Testing软件测试网 ?0C?3YA;E2|

设置51Testing软件测试网.FpbWVb

其他细节51Testing软件测试网.nLA&Iy6m

Java™ Virtual Machine (JVM)堆大小51Testing软件测试网,qi ]PY}

179251Testing软件测试网,d7@v(_*` x8Q

请注意,JVM堆的大小与系统的物理内存的大小有直接的关系。永远不要将JVM堆大小设置为大于系统的物理内存大小。  请参阅JVM最大堆大小限制51Testing软件测试网!`m ~T,DC:z'W

JVM堆大内存页

3eE Y5`'G'H'@0

-Xlp51Testing软件测试网2t$R7Q \i qG

IBM JVM一起使用,用于分配具有大内存页的堆。  请参阅JVM堆大内存页

'h1k:W,B|/Q:b0

kCluster and  pCluster

5b#sU}Kec"z0

-Xk30000  -Xp24000k,2400k51Testing软件测试网0y IQO&?1gW

固化簇。为类文件预先分配JVM堆,因为类文件一旦被装载,就固化在内存中。  请参阅kClusterpCluster

"B [%~x,cN,F0

  JVM最大堆大小限制51Testing软件测试网*i5zV%ex-Ei ^
  在为应用服务器设置堆大小时,要记住:确保系统有足够的物理空间,以便将所有进程装入物理内存,并满足操作系统需要。如果分配的内存大于系统的物理内存,就会发生分页,从而导致糟糕的性能。51Testing软件测试网AI,d BH
  我将堆大小的最小值和最大值设置为相同的值,对于在IBM JDK上运行的生产系统来说,这可能不是最佳选择。在我的评测中,系统承受负载的时间很短(大约3小时),并且运行的portlet的内存需求不大。如果使用内存需求较大的portlet,或者要持续运行,那么通过将初始堆大小设置为320 MB可能会减少堆碎片。

v.~\w+G0
  对堆大小进行调优之后,要监视系统,以确保没有发生分页。如前所述,换页会导致糟糕的性能。

5Dks Z(xaf3T$V0

 

{9Hhz]-|kOl0

如何设置参数:  在WebSphere Administrative Console中,选择Servers-> Application Servers -> WebSphere Portal -> ServerInfrastructure: Java and Process Management -> Process Definition-> Java Virtual Machine
F(_(x B7k}4hM1~9k0
  可以在下面两个地方更改堆大小:
51Testing软件测试网 {9^AoNl
  - Initial Heap Size51Testing软件测试网b)S/G]X)A _
  
- Maximum Heap Size
E`9}e"Q0
  JVM堆大内存页

H3Y*["NEx5M*g3i0
  该设置可以与IBM JVM一起使用,以使用大内存页分配堆空间。为支持大内存页,AIX操作系统必须进行配置。使用大内存页可以减少跟踪堆所需的CPU开销。通过这样的调优,我的评测吞吐率提高了10%
2vnfc.Q0
  如何设置参数:51Testing软件测试网yb2i R0U;[BVkv
  在WebSphere Administrative Console中,选择Servers -> ApplicationServers -> WebSphere Portal -> Server Infrastructure: Java andProcess Management -> Process Definition -> Java Virtual Machine-> Generic JVM Argument
zp4U|c0
  添加:
-Xlp
)R6@OnlW0
  在WebSphereAdministrative Console中,选择
Servers -> Application Servers ->WebSphere Portal -> Server Infrastructure: Java and ProcessManagement -> Process Definition -> Custom Properties -> New-> EXTSHM=OFF51Testing软件测试网0C"F#AY4]&o2XW
  (注意:当EXTSHM开启时,会阻止大内存页的使用。)
51Testing软件测试网+HyNXG jh
  停止Portal服务器

kWs'Y;?qO1P0
  配置AIX,以支持大内存页。我使用以下步骤分配1856 MBRAM作为大内存页(16MB)。之所以选择这个大小,是因为这些系统中有4GB的物理内存。对于采用不同物理内存大小的系统,这些值应有所调整。

?AYc[;l0
  vmo -r -o lgpg_regions=116 -o lgpg_size=16777216
)E ]n:G:FC0
  
bosboot -a51Testing软件测试网h)M/G%au4N$}
  
reboot -q
RK @6eT/DYv|0
  
vmo -p -o v_pinshm=1
/W)ff;^?&k!L0
  
chuser capabilities=CAP_BYPASS_RAC_VMM,CAP_PROPAGATE $USER
)xii2z&|0
  重新启动Portal Server。要确认是否正在使用大内存页,运行AIX命令vmstat -l 1 5并查看“alp”列,它是当前使用的活动大内存页。如果正在使用大内存页,那么它应该是一个非0值。
51Testing软件测试网4T/a*P+?Nm
  kCluster
pCluster
#_kJf(r0
  JVM堆上的对象通常是移动的;也就是说,Garbage CollectorGC)在决定重排列堆时,可能会移动这些对象。但是,无论是永久地还是暂时地,有些对象是不能移动的。那些不能移动的对象被称作固化对象(pinned object)。
51Testing软件测试网p[B DYk]*^8{ A,V9p
  在版本1.3.1Service Refresh 7及之前版本中,GC首先在堆的底部分配一个kCluster作为第一个对象。kCluster是一个存储区域,专门用于类块。它大到足以容纳1280个条目。每个类块长度为256字节。
(wH.K8G6\0
  然后,GC分配一个pCluster作为堆上的第二个对象。pCluster是用于分配固化对象的存储区域。它的长度为16 KB
t(K3Li]+R+T0
  当kCluster耗尽时,GC将类块分配在pCluster中。当pCluster也耗尽时,GC分配一个2 KB的新的pCluster51Testing软件测试网,o%P X Vu9|
  由于这个新的pCluster可以分配在堆中的任何位置,并且必须是固定的,因此可能导致碎片问题。固化对象使GC不能在堆压缩期间合并空闲空间,因而可能导致一个堆有很多容量较小的空闲空间,所以即使某次分配明显少于空闲空间总量,也不能成功分配。为解决这个问题,1.3.1和更高版本的SR7提供了一些命令行选项,用于指定kCluster-Xk)、pCluster-Xp)和pCluster的溢出大小(-Xp)。使用这些选项将簇的初始大小设置得足够大,以避免碎片问题。
F~Y;ap3P m{ d0
  如何设置参数:
,u"UuFpF0
  在WebSphere Administrative Console中,选择Servers -> Application Servers-> WebSphere Portal -> Server Infrastructure: Java and ProcessManagement -> Process Definition -> Java Virtual Machine ->Generic JVM Argument51Testing软件测试网2uvR,\'ui+q
  输入
-Xk30000 -Xp24000k,2400k
`Z5ni-d0
  数据源调优
51Testing软件测试网P,nW@"W
  根据WebSphere Portal信息中心的描述,WebSphere Portal V6.0使用多个数据库。在我的例子中,我使用7个独立的数据库,每个数据库都有它自己的数据源。这些数据源是:51Testing软件测试网#`VH6{\(HE1q w@
  表2.数据源名称
51Testing软件测试网4C B[n!N4Y9K

数据库

Z`j#VFsU z0

数据库名称

3N,eJ2HicY0

数据源名称51Testing软件测试网H8A?+{ s

Release

z[8^!hE6e*M,ms)k0

release

Dfq9x+]6_d/[0

reldbDS

4?6crjw&j,l0

Community

3R1u[I_|u h0

community

Ri@rY L%C h.v0

commdbDS51Testing软件测试网 I9RNq C3e

Customization51Testing软件测试网 ?LX#U)ok%d

custom51Testing软件测试网-I6D;AzR-|

cusdbDS51Testing软件测试网O$l/]6Y6mrv

Feedback

"A}6h:k[$b-T4TZd0

fdbkdb51Testing软件测试网:{_D\p$j-r

fdbkdbDS51Testing软件测试网0d!p1m)NQi

Likeminds

9Q S^sO$B;b0

lmdb51Testing软件测试网-llh]!\-B pu

lmdbDS

D:ODi1B4N#n0

JCR51Testing软件测试网8lg,dE:c

jcrdb

8v9i+zi4mM8b2p)lJ0

jcrdbDS51Testing软件测试网7s%m$h"h4^9FLht d*yt

Member Manager51Testing软件测试网1b-sS'W-O!W/dm

wmmdb51Testing软件测试网)iF0l,T-a9dFl(OI

wmmdbDS51Testing软件测试网"c? p9Eqy:K

对于预置语句缓存大小,路径为Resources -> JDBC Providers -> provider name-> Data Sources -> datasource name -> WebSphere ApplicationServer data source propertiesprovider namedatasource name随数据库迁移期间为数据库选定的名称而定。查看参数statement cache size
RK2c ]%w%CMJpj0
  我们将所有数据源的预置语句缓存大小设为1条语句,以减少对本地内存的需求,从而避免系统崩溃。
51Testing软件测试网YZ5P Xm t

 51Testing软件测试网 s_ [%AX2U*H-l+m9_

 51Testing软件测试网8H*a%GQ+v7I8Qz p8[ j4A

 

K;] OKA1v%~ `{7gw0

 51Testing软件测试网0p |0P#A$_F#[

 51Testing软件测试网u5X u&~+By3`

 

Rcrc TX.I0

 

j"W#tYA.}\"E6c0

51Testing软件测试网H8e5XX!Pm-P~8n*p
  DB2注册表变量51Testing软件测试网 KyQ%kg![p
  下面的注册表变量应该在实例级设置(使用db2set命令):
R2T7v _K"Oh/t0
  表3. DB2注册表变量解释
51Testing软件测试网g!Eki#bz u

注册表变量

7uq&vS,bE@8Z?$h$J$M0

描述51Testing软件测试网E!V{U$e6i

DB2_RR_TO_RS51Testing软件测试网)l+yle z2s l dk0H

DB2 v8.2开始,不推荐使用该参数。如果在8.2以上版本的DB2中尝试设置该参数时没有遇到错误,那么可以设置该参数。如果遇到错误,也没有关系。接下来的两个变量就是用来替代它的。  当DB2_RR_TO_RS开启时,不能确保RR扫描用户表的行为,因为在索引键插入和删除期间不会锁定下一个键。但是编目表不受这个选项的影响。当DB2_RR_TO_RS开启时,另一个变化的行为是,扫描将跳过已经被删除但是尚未提交的行,即使这些行符合扫描条件也是如此。51Testing软件测试网 j0}#E(P|8GI$@I

DB2_EVALUNCOMMITTED51Testing软件测试网6k C|;@ z

该变量被启用时,将允许表或索引访问扫描推迟或避免行锁,直到发现一个数据记录满足谓词条件。DB2_EVALUNCOMMITTED只适用于使用Cursor StabilityRead Stability隔离级别的语句。对于索引扫描,索引必须是type-2索引。而且,虽然在type-2索引扫描中,被删除的行不会被跳过,但是除非同时设置了注册表变量DB2_SKIPDELETED,否则在表扫描访问中,被删除的行将被无条件跳过。

$v{+J+R g v1|#[ |0

DB2_SKIPDELETED51Testing软件测试网LW0[9G9O)c"?X

该变量被启用时,将允许使用Cursor StabilityRead Stability隔离级别的语句在索引扫描期间无条件地跳过被删除的键,而在表访问期间则无条件地跳过被删除的行。当DB2_EVALUNCOMMITTED被启用时,被删除的行会被自动跳过,但是除非同时启用了DB2_SKIPDELETED,否则type-2索引中未提交的伪删除键不会被跳过。

;u'DE!EkLq(i0

DB2_INLIST_TO_NLJN

*ABT~!~.V{q ~0

有时候,优化器没有准确的信息来确定用于重写查询的最佳连接方法。如果IN列表中包含参数标记符或主机变量,使优化器不能使用编目统计信息来确定选择性,就会出现这种情况。这个注册表变量会导致优化器优先使用嵌套循环连接来连接值列表,使用为IN列表提供值的表作为连接的内部表。

$Xb0u*nwv0

DB2_MINIMIZE_LISTPREFETCH

NE$Ll:|/ZX;B0

为了避免对JCR数据库表的查询使用低效的访问计划,这个变量是必需的。51Testing软件测试网*UCEeD1{2?Dl n

 51Testing软件测试网P'^NE9E)f

  以实例用户身份,输入以下命令,以设置DB2注册表变量:
3_?(f9Yv"Y0db2set DB2_RR_TO_RS=YES
4? ExE!P)bs3ZV0db2set DB2_EVALUNCOMMITTED=YES
MT]z [Ta)]'X0db2set DB2_SKIPDELETED=ON
p.Z:U_+NAuDR0db2set DB2_INLIST_TO_NLJN=YES
-zIs+w8AWt0db2set DB2_MINIMIZE_LISTPREFETCH=ON51Testing软件测试网~MBI3`%{8D^9Y
  可选变量51Testing软件测试网,|U ?ku3O
  如果DB2所在系统是CPU密集型,那么还可以设置下面的参数。由于这个变量对于所有包含多于5个连接的语句都有影响,因此要小心使用。该参数可以帮助减少优化期间占用的时间和资源。虽然这样可以减少优化所需的时间和资源,但是同时也会增加生成非最佳数据访问计划的风险。
s)W&e xS,f6s OVc6y#X0
  DB2_REDUCED_OPTIMIZATION=5
/h.H.YFFZk[CQ0
  注意: 只有在IBM明确建议的情况下,才应该设置该参数。
51Testing软件测试网Q"e5F7};Gj'E1hP:|$C|
  数据库管理器配置参数
4p6a4T!fyq n-|?0
  表4展示了数据库管理器配置参数:
;hx]OJ2A6?c)` Q0
  表4.数据库管理器配置参数

T[#L$z)zR[a0

参数名

be la7Gi ?.?&Q||"}0

"P%[|-WWS0

QUERY_HEAP_SZ

*FR+f7GSKi/N,q0

32768

}D{:Gx%{8W'Qr'@0

MAXAGENTS51Testing软件测试网#pQRo*J]*[

1000

@6hH`^eH0

SHEAPTHRES

3[6J G6i,F0

50000

qrxw1r/D6K _d e0

HEALTH_MON

+_8\L4KN:r0

OFF51Testing软件测试网)G-{,U3cFR1y8m?

ASLHEAPSZ51Testing软件测试网 Dz'H3~Pd1hj

60

8N'hyw#O:E0

RQRIOBLK51Testing软件测试网;\7?rz-edv

65535

|Ya'LSd$h.l0

  以实例用户的身份,输入以下命令,更新数据库管理器配置:
)qR`9GO A8S0db2 "update dbm cfg using query_heap_sz 32768"51Testing软件测试网+F\ Ys-y3L!{8V/b*o
db2 "update dbm cfg using maxagents 1000"
:@2miu"j0db2 "update dbm cfg using sheapthres 50000"51Testing软件测试网(@*HX\X+Uua
db2 "update dbm cfg using health_mon off"
G*x&Sp1@P |)E]+}0db2 "update dbm cfg using aslheapsz 60"
t|_!t.g]6oJ0db2 "update dbm cfg using rqrioblk 65535"
6U0CJ$l H8jC X6~"^$_0db2 "update dbm cfg using federated no"
N-V+p2pf*]7k0
  注意: 如果需要联邦数据库支持,不能将FEDERATED设为NO51Testing软件测试网P3IMI9_,u*n
  数据库配置参数
,Jr(OE?3gM2]0
  用于所有数据库的参数
` nY5\ CcfEB0
  表5展示了应该为所有数据库设置的数据库配置参数:
D3d.Nd$\I+_,R!T-u0
  表5.用于所有数据库的数据库配置参数
51Testing软件测试网'A(f?f(_tfo'}

参数名51Testing软件测试网4w,Q3{0n6rv/g%GT+b

'rvj0[)F0

APPLHEAPSZ

g S(RB1Q f8K0

4096

f pMm,P5O/y-hs0

APP_CTL_HEAP_SZ

V:C:N!R S mK0

102451Testing软件测试网5yIW2cX#r(f}

STMTHEAP51Testing软件测试网 Np#h{,v:B

8192

hI\ T,t\IKg0

DBHEAP

TAG: 性能调优

 

评分:0

我来说两句