WebSphere 和 DB2 调优指南--摘录
上一篇 / 下一篇 2009-01-06 15:25:10 / 个人分类:性能测试
IBM WebSphere Portal Web Content Manager和DB2调优指南
正在寻找一个资源中心来调优WebSphere® Portal Web Content Management和IBM® DB2®for Linux®, UNIX®, and Windows®环境?本文描述该环境独特的、需要特殊考虑的各个部分。您将学习如何调优Application Server和WebSpherePortal。作为良好的开端,您将学习一些应该设置为指定值的各种注册表变量和数据库管理器及数据库配置参数。最后,持续维护小节提供了如何使DB2系统随系统增长仍然高效运行的指导原则。51Testing软件测试网 M~(cQ'^p(kH
对环境进行性能调优
+E{Z!]sg;B5q8_;]1I$Q0 WebSphere Portal环境的调优涉及到对该环境的不同的系统和组件的调优和配置。本节讨论一些通用的概念,并详细描述本文评测环境所使用的配置的特征。WebSpherePortal Web Content Management (WCM) AIX® Power4评测环境的配置和调优是基于WebSpherePortal AIX Power4环境的,IBM WebSphere Portal Version 6.0 Tuning Guide对后者作了详细阐述。用于评测WCM的环境的所有不同之处在本章中都会明确提出。对任何WebSphere Portal环境的完整的调优和配置方法包括:
YG5m/b w0 配置应用服务器和为这个应用服务器定义的资源
[)n#M(m|4l7R(L0J0 确定用于扩展环境的复制策略51Testing软件测试网6Uz3yZ5?s#lqX?&y
调优数据库和数据库服务器51Testing软件测试网B)q0T _
H;L#w"~(TL
调优目录服务器和它的数据库
"lis"p+z*@
X0 调优web服务器
'\9X
J
P9p+n0 调优操作系统和网络51Testing软件测试网 eU"Sn dR
调优WebSphere Portal服务
~jJt4a.aHn0 在调优各个系统时,首先应该具备一个基准,并监视性能指标,以确定是否应该更改某个参数,当作出更改时,也要监视性能指标,以确定更改的效果。51Testing软件测试网F E@7O Q&?i0~+K
了解环境
d*opKI k0 WebSphere Portal V6.0使用附加的服务器来提供其功能。在我的评测环境中,除了portal服务器本身以外,还有一个Web服务器,一个数据库服务器和一个目录服务器,这些服务器放在WebSphere Portal系统之外的单独的系统上。采用这种配置的主要好处是可以避免同一个系统上的多个服务器之间争用资源。如果其他服务器与WebSpherePortal服务器争用资源,就会影响系统可达到的吞吐率。在本报告中,用于评测的配置将IBM HTTP Server与WebSpherePortal放在同一个系统上。51Testing软件测试网^Q"g6_[#['f
应用服务器调优
A3Qd'~7r0 在WebSphere ApplicationServer中,应用服务器的配置和调优有很多方面。我发现,本文和IBM WebSphere Portal Version 6.0Tuning Guide中描述的那些方面对于WebSphere Portal在我们的实验环境中正确、高效地运行非常关键。
)Xf4Y
g3oh0 根据我对于本文描述的工作负载的经验,表1展示了与用于Power4平台的AIX的IBM WebSphere Portal Version 6.0 Tuning Guide不同的一些配置:
sA#Kz_.tC6~$f0 表1.应用服务器参数
参数 | 设置 | 其他细节 |
Java™ Virtual Machine (JVM)堆大小 | 1792 | 请注意,JVM堆的大小与系统的物理内存的大小有直接的关系。永远不要将JVM堆大小设置为大于系统的物理内存大小。 请参阅JVM最大堆大小限制 |
JVM堆大内存页 | -Xlp | 和IBM JVM一起使用,用于分配具有大内存页的堆。 请参阅JVM堆大内存页 |
kCluster and pCluster | -Xk30000 -Xp24000k,2400k | 固化簇。为类文件预先分配JVM堆,因为类文件一旦被装载,就固化在内存中。 请参阅kCluster和pCluster |
JVM最大堆大小限制
pc7j t)?fM6U6K0 在为应用服务器设置堆大小时,要记住:确保系统有足够的物理空间,以便将所有进程装入物理内存,并满足操作系统需要。如果分配的内存大于系统的物理内存,就会发生分页,从而导致糟糕的性能。51Testing软件测试网*Kr1B`2S%SCmSP
我将堆大小的最小值和最大值设置为相同的值,对于在IBM JDK上运行的生产系统来说,这可能不是最佳选择。在我的评测中,系统承受负载的时间很短(大约3小时),并且运行的portlet的内存需求不大。如果使用内存需求较大的portlet,或者要持续运行,那么通过将初始堆大小设置为320 MB可能会减少堆碎片。51Testing软件测试网%SG2h
h J/t#N
对堆大小进行调优之后,要监视系统,以确保没有发生分页。如前所述,换页会导致糟糕的性能。
如何设置参数: 在WebSphere Administrative Console中,选择Servers-> Application Servers -> WebSphere Portal -> ServerInfrastructure: Java and Process Management -> Process Definition-> Java Virtual Machine
~oufB0Aw0 可以在下面两个地方更改堆大小:51Testing软件测试网#Q1f8X;c)m]
- Initial Heap Size
wa7U:I;o5~0 - Maximum Heap Size
Dn/ptX-BHf0 JVM堆大内存页51Testing软件测试网j3s7O%N`@:^
该设置可以与IBM JVM一起使用,以使用大内存页分配堆空间。为支持大内存页,AIX操作系统必须进行配置。使用大内存页可以减少跟踪堆所需的CPU开销。通过这样的调优,我的评测吞吐率提高了10%。51Testing软件测试网@4\
urK8R$K
zY"@
如何设置参数:
.cMLGaP$a0 在WebSphere Administrative Console中,选择Servers -> ApplicationServers -> WebSphere Portal -> Server Infrastructure: Java andProcess Management -> Process Definition -> Java Virtual Machine-> Generic JVM Argument51Testing软件测试网!] _k!W[f0o0kUo
添加:-Xlp51Testing软件测试网{2`P}X0E/l
在WebSphereAdministrative Console中,选择Servers -> Application Servers ->WebSphere Portal -> Server Infrastructure: Java and ProcessManagement -> Process Definition -> Custom Properties -> New-> EXTSHM=OFF51Testing软件测试网7myv@`
(注意:当EXTSHM开启时,会阻止大内存页的使用。)51Testing软件测试网+v
J.ttosh3\)T
停止Portal服务器51Testing软件测试网pQ e*T|3B7s
配置AIX,以支持大内存页。我使用以下步骤分配1856 MB的RAM作为大内存页(16MB)。之所以选择这个大小,是因为这些系统中有4GB的物理内存。对于采用不同物理内存大小的系统,这些值应有所调整。
6hP-A9O5{B0 vmo -r -o lgpg_regions=116 -o lgpg_size=16777216
:VHt({0bG0 bosboot -a
m[~FT0 reboot -q51Testing软件测试网X/?HF4t!? Y.M
vmo -p -o v_pinshm=151Testing软件测试网'q,Y Bm4O-K*b,i \"r"b
chuser capabilities=CAP_BYPASS_RAC_VMM,CAP_PROPAGATE $USER51Testing软件测试网z%kS(JF'N"Ro
D
重新启动Portal Server。要确认是否正在使用大内存页,运行AIX命令vmstat -l 1 5并查看“alp”列,它是当前使用的活动大内存页。如果正在使用大内存页,那么它应该是一个非0值。51Testing软件测试网9KH6C p.t
kCluster和pCluster51Testing软件测试网#s
y
S8fkj5N
A&Zo
JVM堆上的对象通常是移动的;也就是说,Garbage Collector(GC)在决定重排列堆时,可能会移动这些对象。但是,无论是永久地还是暂时地,有些对象是不能移动的。那些不能移动的对象被称作固化对象(pinned object)。
.B"t ^LI
}C0 在版本
5T I%J1uxd8yJ$WHt0 然后,GC分配一个pCluster作为堆上的第二个对象。pCluster是用于分配固化对象的存储区域。它的长度为16 KB。51Testing软件测试网7Yg5q+Ev/r3G;hM
当kCluster耗尽时,GC将类块分配在pCluster中。当pCluster也耗尽时,GC分配一个2 KB的新的pCluster。51Testing软件测试网W2Z x[
Q7h;nM'{(D
由于这个新的pCluster可以分配在堆中的任何位置,并且必须是固定的,因此可能导致碎片问题。固化对象使GC不能在堆压缩期间合并空闲空间,因而可能导致一个堆有很多容量较小的空闲空间,所以即使某次分配明显少于空闲空间总量,也不能成功分配。为解决这个问题,1.3.1和更高版本的SR7提供了一些命令行选项,用于指定kCluster(-Xk)、pCluster(-Xp)和pCluster的溢出大小(-Xp)。使用这些选项将簇的初始大小设置得足够大,以避免碎片问题。51Testing软件测试网1Y N0B;jHZ
如何设置参数:
0q6I
WiTG#Ez0 在WebSphere Administrative Console中,选择Servers -> Application Servers-> WebSphere Portal -> Server Infrastructure: Java and ProcessManagement -> Process Definition -> Java Virtual Machine ->Generic JVM Argument
"bFLFh6y\0 输入-Xk30000 -Xp24000k,2400k51Testing软件测试网#m2wB;qx%I#{PH
数据源调优
b?1O*h{&M0K'p0 根据WebSphere Portal信息中心的描述,WebSphere Portal V6.0使用多个数据库。在我的例子中,我使用7个独立的数据库,每个数据库都有它自己的数据源。这些数据源是:
4O8nl d%@"W}|0 表2.数据源名称
数据库 | 数据库名称 | 数据源名称 |
Release | release | reldbDS |
Community | community | commdbDS |
Customization | custom | cusdbDS |
Feedback | fdbkdb | fdbkdbDS |
Likeminds | lmdb | lmdbDS |
JCR | jcrdb | jcrdbDS |
Member Manager | wmmdb | wmmdbDS |
对于预置语句缓存大小,路径为Resources -> JDBC Providers -> provider name-> Data Sources -> datasource name -> WebSphere ApplicationServer data source properties。provider name和datasource name随数据库迁移期间为数据库选定的名称而定。查看参数statement cache size。
5Cx6b7JMg0 我们将所有数据源的预置语句缓存大小设为1条语句,以减少对本地内存的需求,从而避免系统崩溃。
'O:p:h5GM0 DB2注册表变量