DB2 pureScale 实战
2010-09-30 00:00:00 来源:WEB开发网本文介绍了 DB2 pureScale 软件的安装配置方法及步骤、常见问题及解决方案,帮助读者快速有效地搭建 DB2 pureScale 环境;通过对客户实际生产中经常采用的 Websphere Application Server + DB2 方案、CICS + DB2 方案、多线程 DB2 CLI 应用程序 + DB2,着重介绍 DB2 pureScale 在这些典型应用场景中如何配置和优化,对于读者今后实战起到指导作用;通过客户实际生产系统等典型应用进行测试,验证 DB2 pureScale 的高可用性及负载均衡能力、高性能,以及高扩展性,增强读者对 DB2 pureScale 的信心。
DB2 pureScale 软件安装配置及常见问题解决
硬件环境要求
DB2 pureScale 采用了和业界联机事务处理“黄金”标准的 DB2/zOS 相同的共享存储体系架构、集中式缓存和锁管理,硬件配置上要求能够通过 SAN 网络访问数据库共享磁盘,需要高性能、低延迟的 InfiniBand 交换机和板卡。
DB2 pureScale 目前支持的服务器包括 IBM Power 6-550 和 595,IBM Power7 全系列服务器。由于 IBM Power6-570 服务器没有 GX+ 插槽,无法安装 Infiniband 网卡,因此不被 DB2 pureScale 支持,DB2 pureScale 后续版本将提供对 IBM PC 服务器的支持。
DB2 pureScale 支持的存储为所有 GPFS 文件系统支持的存储,具体参见:
http://publib.boulder.ibm.com/infocenter/clresctr/vxrx/index.jsp?topic=/com.ibm.cluster.gpfs.doc/gpfs_faqs/gpfsclustersfaq.html
DB2 pureScale 强烈推荐使用支持 SCSI-3 协议的存储,尽管 DB2 pureScale 也可以支持非 SCSI-3 协议的存储,但是发生故障时,IO 屏蔽的时间将大为延长,这将严重影响宕机时数据库受影响数据的恢复时间。
我们在安装 DB2 pureScale 前,需要仔细检查硬件环境是否满足要求,否则后续的安装配置工作将无法顺利开展,在使用过程中也可能出现不确定的问题。
实验环境配置及规划
我们实验环境硬件环境的硬件配置和规划如下:
服务器配置
表 1. DB2 pureScale 实验环境服务器配置
服务器(主机名) | 详细配置 | IP地址 | InfiniBand网络名 | InfiniBand IP地址 |
---|---|---|---|---|
p5501 | 6CPU 48G 内存 1 块 8GB HBA 1 块 IB 卡 | 172.16.24.121 | p5501ib | 10.10.10.1 |
p5502 | 6CPU 48G 内存 1 块 8GB HBA 1 块 IB 卡 | 172.16.24.122 | p5502ib | 10.10.10.2 |
p5503 | 6CPU 48G 内存 1 块 8GB HBA 1 块 IB 卡 | 172.16.24.123 | p5503ib | 10.10.10.3 |
存储配置
IBM DS4800 48 块 146GB 光纤磁盘,划分成 6 个 RAID10 (4+4),具体 LUN 使用情况:
#mpio_get_config -A
Storage Subsystem worldwide name: 60ab8001132000004babff15
Storage Subsystem Name = 'DS4800-01-PureScal_ZSJ_D011231'
hdisk LUN # Ownership User Label
hdisk6 0 B (preferred) datagpfs1
hdisk7 1 B (non-preferred) votgpfs1
hdisk8 2 B (non-preferred) B1
hdisk9 3 B (preferred) B2
hdisk10 4 B (non-preferred) B3
hdisk11 5 B (preferred) B4
hdisk12 6 B (non-preferred) B5
hdisk13 7 B (preferred) B6
为简洁起见,我们这里仅列示了服务器 p5501 磁盘情况,实际上每台服务器均可看到相同的命令输出。
表 2. DB2 pureScale 实验环境物理卷规划
物理卷 | User Label | 用途 | 文件系统挂载点 |
---|---|---|---|
hdisk6 | datagpfs1 | pureScale 实例共享 GPFS 文件系统 | /db2sd_20100521145928 |
hdisk7 | votegpfs1 | GPFS 仲裁盘 | |
hdisk8 | B1 | 数据库数据 GPFS 文件系统 | /db2data |
hdisk9 | B2 | 数据库数据 GPFS 文件系统 | /db2data |
hdisk10 | B3 | 数据库数据 GPFS 文件系统 | /db2data |
hdisk11 | B4 | 数据库数据 GPFS 文件系统 | /db2data |
hdisk12 | B5 | 数据库数据 GPFS 文件系统 | /db2data |
hdisk13 | B6 | 数据库日志 GPFS 文件系统 | /db2log |
InfiniBand 交换机配置
1 台 Qlogic 9024CU
InfiniBand 卡配置
如果在 1 台物理服务器划分多个 LPAR,分别运行 DB2 pureScale 成员服务器或 CF,有时候需要在 LPAR 间共享使用 Infiniband 卡,这时我们需要通过 HMC 对 LPAR 的 HCA 资源进行配置:
图 1. HCA 卡在 HMC 中的配置
查看原图(大图)
建议 GUID 号和分区号保持一致,同时对 HCA 使用容量进行正确的设置。HCA 卡容量使用方式分为:
Dedicated( 专用 ) :分配 100% 的资源
High(高):分配 25% 的资源
Medium (中):分配 12.5% 的资源
Low (低):分配 6.25% 的资源
对于 p6-550 或 p750 服务器,如果 1 个成员服务器和 1 个 CF 服务器在 1 台物理服务器上,建议分配给 CF 服务器 75% 的 HCA 资源;对于 p6-595 或 p770, p780 服务器,建议成员服务器和 CF 服务器均使用专用的 HCA 资源。
pureScale 软件安装配置
硬件安装配置完毕后,我们就可以开始安装 DB2 pureScale 了,不过,我们还是有些安装前的配置工作需要完成:
安装操作系统和补丁
DB2 pureScale 建议安装 AIX 6.1.3 SP3,C++ runtime 最低级别要求 xlC.rte 9.0.0.8 ,IOCP 软件包级别要求 6.1.3.1 ,系统微码级别要求为 3.5 或以上。
配置 SSH 信任关系
在 3 个节点 p5501, p5502, p5503 上 root 用户登录,执行命令:
#ssh-keygen -t dsa
直接回车接受默认值,在 ~/.ssh 目录中将会产生 2 个文件:id_dsa, 和 id_dsa.pub
合并三个节点上的 id_dsa.pub 到一个文件 authorized_keys 中,然后把 authorized_keys 复制到各个节点的 ~/.ssh 目录,并更改权限:
#chmod 644 authorized_keys
检验 SSH 信任关系配置是否成功,需要从任何 1 个节点发起对其他节点的命令,如从 p5501 上发出命令:
#ssh p5502 date
如果不提示输入口令,则信任关系配置成功。
安装 InfiniBand 相关软件包
uDAPL base fileset 从 AIX 6.1 TL3 expansion pack 光盘可以获得。
uDAPL 升级包 udapl.rte.6.1.0.1.bff 可以从下载地址:
http://www-933.ibm.com/eserver/support/fixes/fixcentral/pseriespkgoptions/ptf?fixes=U825646
Infiniband ifix 下载地址:
ftp://public.dhe.ibm.com/aix/efixes/iz68803/iz68803.epkg.Z
使用 smit installp 安装 uDAPL 基础包后,使用 smit update_all 安装 uDAPL 升级包,使用如下命令来安装 Infiniband ifix:
#emgr -e iz68803.epkg.Z
配置 Infiniband Communication Manager
在 3 个节点上执行如下命令,创建 icm 设备:
#mkdev -c management -s infiniband -t icm
配置 Infiniband IP 地址
在 3 个节点上使用如下命令,并输入相关参数,如 p5501 上配置如下:
#smit chinet
图 2. Infiniband IP 配置
查看原图(大图)
需要注意的是,HCA Adapter 必须明确指定 Infiniband 适配器设备,如 iba0,否则服务器重启后 Infiniband 网卡 IP 将无法正常工作,另外 Adapter ’ s port number 需要指定到连接了 Infiniband 线缆的端口(Infiniband 网卡为双口,我们实验环境仅连接了 1 条线缆)。
需要说明的是,DB2 pureScale 工作时,成员服务器和 CF 服务器间通讯使用的是 RDMA(Remote Direct Memory Access) 协议,直接读写对方内存,大大减少通讯成本开销,是 DB2 pureScale 高扩展性的重要保证技术之一。DB2 pureScale 并不使用高成本的 TCPIP over Infiniband 的技术,之所以需要给 Infiniband 网卡配置 IP 地址,主要是配置和连通性测试需要。
配置域名解析
在 3 个节点上编辑 /etc/hosts 文件,增加如下条目:
172.16.24.121 p5501
172.16.24.122 p5502
172.16.24.123 p5503
10.10.10.1 p5501ib
10.10.10.2 p5502ib
10.10.10.3 p5503ib
共享磁盘赋予 PVID
在 3 个节点上分别对 hdisk6~hdisk13执行如下命令,赋予 PVID:
#chdev -l hdisk6 -a pv="yes"
配置 IOCP
在 3 个节点上执行如下命令,配置 IOCP 设备:
#mkdev -l iocp0
当这些准备工作完成后,我们就可以启动 DB2 pureScale 的安装配置程序了。
安装配置 DB2 pureScale 软件
我们可以使用命令 db2_install 以字符终端方式安装来安装 DB2 pureScale,也可以通过命令 db2setup 以图形化方式来安装 DB2 pureScale。两者的区别是,使用 db2_intall 一次只能完成 1 台服务器且仅包含 DB2 pureScale 软件的安装,而使用 db2setup 图形安装工具,可以一次性完成集群中所有服务器 DB2 pureScale 的软件安装和实例配置。
在 3 个节点中任意 1 个节点启动 db2setup 程序,DB2 pureScale 图形界面中指定 3 个节点各自用途,如 p5501 为 Primary CF,p5502 和 p5503 两个节点为成员服务器的设置界面为:
图 3. DB2 pureScale 安装配置
查看原图(大图)
DB2 pureScale 图形安装程序在 3 个节点上自动创建实例用户、fence 用户及相关组、自动安装 DB2 pureScale 软件,并且创建实例共享 GPFS 集群文件系统。安装提示中需要指定实例共享 GPFS 文件系统的共享磁盘(Shared disk partition device path)为 /dev/hdisk6、仲裁盘(DB2 Cluster Services Tiebreaker)为 /dev/hdisk7。
接下来的安装过程将非常简单,DB2 pureScale 安装配置将非常顺利的完成。安装完毕后,执行命令:
$db2instance -list
检查各成员服务器和 CF 服务器的状态。
图 4. DB2 pureScale 运行状态
查看原图(大图)
如果安装的环境不干净,安装过程中可能出现一些问题。下面我们介绍安装在非干净环境下安装 DB2 pureScale 遇到的常见问题和解决方案。
pureScale 软件安装配置常见问题及解放方案
DB2 pureScale 安装过程中经常出现的问题是,目标服务器上曾经安装过 DB2 pureScale,当再次进行安装时,环境未清理干净,导致 DB2 pureScale 安装无法继续下去。下面我们就安装过程中的常见问题和解放方案进行分析:
问题 1:安装程序检测到远程主机 RSCT 域存在,安装程序无法继续
图 5. DB2 pureScale 安装配置常见问题 1
这时,我们如下执行命令,屏幕输出如下:
#lsrpdomain
Name OpState RSCTActiveVersion MixedVersions TSPort GSPort
db2domain_20100408172908 Offline 2.5.3.6 No 12347 12347
域 db2domain_20100408172908 为以前安装时遗留,需要使用如下方式进行清理:
#rmrpdomain -f db2domain_20100408172908
问题 2:安装程序检测到 GPFS 集群存在,安装程序无法继续
图 6. DB2 pureScale 安装配置常见问题 2
如上问题需要将服务器从 GPFS 集群中删除,执行如下命令进行清理:
#/usr/lpp/mmfs/bin/mmdelnode – f
问题 3:DB2 注册项遗留,安装程序无法继续
图 7. DB2 pureScale 安装配置常见问题 3
如上问题需要手工清理 DB2 注册项,执行如下命令如下进行清理:
#rm /var/db2/*
问题 4:目标服务器产品级别不一致,安装无法继续
图 8. DB2 pureScale 安装配置常见问题 4
如上问题是由于在目标服务器上已经安装了 pureScale 软件,为避免版本差异导致问题,我们需要手工卸载目标服务器已经安装的 pureScale 软件,执行如下命令进行清理:
#/opt/IBM/db2/V9.8/install/db2_deinstall – a
问题 5:在安装程序最后配置实例的阶段,提示 GPFS 文件系统无法创建
该问题通常由于手工强行卸载 GPFS 文件系统,该 GPFS 文件系统原先使用的共享磁盘没有正常删除,导致磁盘上的 GPFS 文件系统标记未清除。我们需要对 hdisk6~hdisk13 用 dd 命令进行清理,如对 hdisk6 的清理命令为:
#dd if=/dev/zero of=/dev/hdisk6 bs=1m count=25
创建数据库
在创建 DB2 pureScale 数据库之前,为性能考虑,我们需要为数据和日志创建独立的 GPFS 文件系统,使用独立的物理磁盘。root 用户登录,执行如下命令:
#/opt/IBM/db2/V9.8/bin/db2cluster -cfs -create -filesystem db2data
-disk "/dev/hdisk8,/dev/hdisk9,/dev/hdisk10,/dev/hdisk11,
/dev/hdisk12" -mount /db2data
#/opt/IBM/db2/V9.8/bin/db2cluster -cfs -create -filesystem db2log
-disk "/dev/hdisk13" -mount /db2log
现在我们就可以创建数据库了,实例用户 db2sdin1 登录系统,执行如下命令:
$db2 “create database HLJRCCB on /db2data dbpath on /db2log
using codeset gbk territory cn”
DB2 pureScale 典型应用模式配置和优化
Websphere Application Server plus DB2 pureScale
Websphere 应用服务器结合后台 DB2 数据库的应用模式在客户实际生产中广泛使用,在此,我们就 DB2 pureScale 客户端自动路由(Automatic Client Reroute, ACR)、工作负载均衡(Workload Balance, WLB)如何配置和使用进行详细说明。
WLB 和 ACR 支持情况
图 9. DB2 pureScale WLB 和 ACR 支持矩阵
Setting | Default Behaviour | |
---|---|---|
Non-Java applications | Java applications | |
Connection-level WLB | Enabled | N/A(不支持) |
Transaction-level WLB | Disabled | Disabled |
ACR post-connection | Enabled | Enabled |
ACR pre-connection | Disabled | Disabled |
Client affinities | Disabled | Disabled |
DB2 pureScale 的工作负载均衡机制分为连接级别(Connection-level WLB)和交易级别(Transaction-level WLB)。连接级别的负载均衡发生在客户端建立数据库连接之时,以后不再调整;交易级别的负载均衡发生在交易边界,根据数据库成员服务器的忙闲程度动态进行调整。
从上表看出,对于 Java 应用程序,交易级别的工作负载均衡缺省是关闭的,尽管可能有多台 pureScale 成员服务器也不可能能做到成员服务器间负载均衡;连接前自动客户端路由(ACR pre-connection)也是关闭的,导致未曾连接过 pureScale 成员服务器的客户端,在其连接属性中指定 IP 的成员服务器宕机时,不会自动路由到其他存活成员服务器。
WLB 和 ACR 配置方法
首先,为了让 WLB 和 ACR 能够正常工作,我们需要在 WAS 服务器的 /etc/hosts 文件中添加 pureScale 成员服务器的 IP 地址和主机名:
172.16.24.122 p5502
172.16.24.123 p5503
其次,我们需要使用 DB2 V9.7.2提供的 JDBC 驱动程序,之前版本或 pureScale 服务器中自带的 JDBC 驱动程序目前不支持 WLB;
最后,我们需要在 WAS 应用服务器里进行相关配置如下:
表 3. DB2 pureScale WLB 和 ACR 在 WAS 中的配置
DataSource | DriverManager | |
---|---|---|
Conn-Level WLB | 不支持 | 不支持 |
Trx-Level WLB | 增加 DataSource 的属性: enableSysplexWLB=true 请参考 WAS 例子 A1 | 增加 Connection 的属性: enableSysplexWLB=true 可以使用属性或在连接串里配置,请参考下一单元格 |
ACR Pre-connection | 方法一:增加 DataSource 的属性 clientRerouteAlternateServerName=172.16.24.123 clientRerouteAlternatePortNumber=50001 请参考 WAS 例子 A2 方法二:生成 jndi,binding 到 DB2,参见 A.3 修改数据源参数 (Data sources > HLJRCCB > WebSphere Application Server data source properties) Client reroute server list JNDI name(clientRerouteServerListJNDIName) 指向 A3 所设置的 JNDI | 方法一:使用属性 Properties props = new Properties(); props.put("user", "db2sdin1"); props.put("password", "db2"); props.put("enableSysplexWLB", "true"); props.put("clientRerouteAlternateServerName", "172.16.24.123"); props.put("clientRerouteAlternatePortNumber ", "50001"); Connection c = DriverManager.getConnection("jdbc:db2://172.16.24.122:50001/mydb", props ); 方法二:在连接串里增加属性 conn = java.sql.DriverManager .getConnection("jdbc:db2://172.16.24.122:50001/HLJRCCB:user=db2sdin1;password=db2; enableSysplexWLB=true;clientRerouteAlternatePortNumber=50001; clientRerouteAlternateServerName=172.16.24.123;"); 注意:该方式不支持多于 2 个节点 |
ACR Post-connection | 默认 enable,无参数配置。 发生 ACR 时系统会报错误信息,错误信息参考 A4 | 默认 enable,无参数配置。 发生 ACR 时系统会报错误信息,错误信息参考 A4 |
A1. 在 WAS 中配置 Trx-Level WLB
在“Data sources > DBNAME > Customer properties”增加 enableSysplexWLB 属性:
图 10. WAS 配置交易级别工作负载均衡
查看原图(大图)
图 10. WAS 配置交易级别工作负载均衡
查看原图(大图)
A2. 在 WAS 中配置 Pre-Conn ACR
修改数据源参数 (Data sources > DBNAME > WebSphere Application Server data source properties)
图 11. WAS 配置连接前客户端自动路由
查看原图(大图)
A3. DB2ClientRerouteServerList Binding
编写一个 jsp 程序,包含如下代码,执行后将绑定相关信息:
清单 1. WAS 中注册 DB2 purescale 自动客户端路由绑定
InitialContext registry = new InitialContext();
// Create a DB2ClientRerouteServerList object
DB2ClientRerouteServerList address =
newDB2ClientRerouteServerList();
// Set the port number and server name for the primary server
address.setPrimaryPortNumber(50001);
address.setPrimaryServerName("172.16.24.122");
// Set the port number and server name for the alternate server
int[] port = {50001};
String[] server = {"172.16.24.123"};
address.setAlternatePortNumber(port);
address.setAlternateServerName(server);
registry.rebind("cell/persistent/serverList", address);
A4. Post-Conn ACR message:
com.ibm.db2.jcc.am.ClientRerouteException: [jcc][t4][2027][11212][4.9.66]
A connection failed but has been re-established. The host name or IP address
is "p5503" and the service name or port number is 50,001.
Special registers may or may not be re-attempted (Reason code = 1).
ERRORCODE=-4498, SQLSTATE=08506
多线程 DB2 CLI 程序 plus pureScale
多线程 DB2 CLI 程序访问 pureScale 数据库,如果要实现 ACR 和 WLB 功能,
首先,我们需要在 DB2 CLI 客户端的 /etc/hosts 中添加如下条目:
172.16.24.122 p5502
172.16.24.123 p5503
然后,我们需要配置客户端 db2dsdriver.cfg 文件,该文件需要放到客户端的 $DB2HOME/sqllib/cfg 目录中。参考 db2dsdriver.cfg 如下:
清单 2. DB2 pureScale db2dsdriver.cfg
<configuration>
<DSN_Collection>
<dsn alias="alias1" name="name1"
host="server1.net1.com" port="50001"/>
<!-- Long aliases are supported -->
<dsn alias="longaliasname2" name="name2"
host="server2.net1.com" port="55551">
<parameter name="Authentication" value="Client"/>
</dsn>
</DSN_Collection>
<databases>
<database name="HLJRCCB" host="172.16.24.122" port="50001">
<parameter name="connectionLevelLoadBalancing" value="true" />
<WLB>
<parameter name="enableWLB" value="true"/>
<parameter name="maxRefreshInterval" value=30/>
</WLB>
<ACR>
<parameter name="enableAcr" value="true" />
<parameter name="enableSeamlessAcr" value="true" />
<parameter name="enableAlternateServerListFirstConnect" value="true" />
<alternate_server_list>
<server name="p5503" hostname="172.16.24.123" port="50001" />
</alternate_server_list>
</ACR>
</database>
<database name="HLJRCCB" host="172.16.24.123" port="50001">
<parameter name="connectionLevelLoadBalancing" value="true" />
<WLB>
<parameter name="enableWLB" value="true"/>
<parameter name="maxRefreshInterval" value=30/>
</WLB>
<ACR>
<parameter name="enableAcr" value="true" />
<parameter name="enableSeamlessAcr" value="true" />
<parameter name="enableAlternateServerListFirstConnect" value="true" />
<alternate_server_list>
<server name="p5502" hostname="172.16.24.122" port="50001" />
</alternate_server_list>
</ACR>
</database>
<!-- Local IPC connection -->
<database name="name3" host="localhost" port="0">
<parameter name="IPCInstance" value="DB2"/>
<parameter name="CommProtocol" value="IPC"/>
</database>
</databases>
<parameters>
<parameter name="GlobalParam" value="Value"/>
</parameters>
</configuration>
上述配置文件中,我们需要注意几个关键参数:
connectionLevelLoadBalancing:设置为 true 时,打开连接级别的负载均衡,设置为 false 时,关闭所有的负载均衡,包括交易级别负载均衡。
enableWLB:设置为 true,且当 connectionLevelLoadBalancing为 true 时,打开交易级别的负载均衡。
enableAlternateServerListFirstConnect:设置为 true 时,打开连接前自动客户端路由(ACR pre-connection);连接后自动客户端路由(ACR post-connection)自动打开,无需关闭。
enableSeamlessAcr:设置为 true 时,无缝自动客户端路由功能打开,客户端程序在路由到新的 pureScale 成员服务器过程中,不提示错误,无需进行错误处理。
CICS plus DB2 pureScale
IBM 交易服务器 CICS 访问 pureScale 服务器,我们推荐如下的架构:
图 12. CICS 和 DB2 pureScale 最佳实践架构
查看原图(大图)
上述架构中,每台 CICS 服务器连接到特定的 pureScale 成员服务器,CICS 交易服务器和 pureScale 成员服务器是多对一的映射关系。
DB2 pureScale 高可用性及负载均衡、高性能、高扩展性预览
本节我们通过具体的客户应用测试案例,了解 DB2 pureScale 在高可用、高性能和高扩展性方面的一些特性。
高可用性及自动负载均衡
该测试模拟客户应用系统正常工作中,某成员服务器突然出现故障,我们观察应用负载是否自动路由到 pureScale 集群中存活的服务器。为了直观起见,我们用 topas 命令来观察成员服务器系统资源使用情况。
测试环境中,pureScale 成员服务器为 p5502 和 p5503,CF 服务器为 p5501,应用服务器为 Websphere Application Server,运行某银行信贷应用。我们模拟 p5502 宕机的情况。
如下两个截图为正常工作时,成员服务器 p5502 和 p5503 的工作负载情况,两台服务器 CPU 使用率均为 40% 左右。
正常工作时,成员服务器 p5502 资源使用情况:
图 13. 高可用性及负载均衡 -1
查看原图(大图)
正常工作时,成员服务器 p5502 资源使用情况:
图 14. 高可用性及负载均衡 -2
查看原图(大图)
模拟宕机后,我们使用 db2instance -list 命令观察到的成员服务器、CF 服务器的状态如下图。成员服务器处于”STOPPED”的状态。
图 15. 高可用性及负载均衡 -3
查看原图(大图)
模拟宕机后,我们观察 WAS 应用,没有发现报错情况;同时观察成员服务器 p5503 的负载情况,CPU 利用率为 60% 以上,应用的负载压力明显转移到存活的成员服务器 p5503。
图 16. 高可用性及负载均衡 -4
查看原图(大图)
我们然后重新启动成员服务器 p5502,下图为使用 db2instance -list 命令观察到的各成员服务器和 CF 服务器的状态,均为”STARTTED”状态。
图 17. 高可用性及负载均衡 -5
查看原图(大图)
故障服务器 p5502 恢复后,我们观察 WAS 应用,没有出现报错的情况;观察 2 台成员服务器,发现工作负载重新均衡到 2 台成员服务器。
下图为成员服务器 p5502 的系统负载情况,CPU 使用率重新回到 40% 左右。
图 18. 高可用性及负载均衡 -6
查看原图(大图)
下图为成员服务器 p5503 的系统负载情况,CPU 使用率重新回到 40% 左右。
图 19. 高可用性及负载均衡 -7
查看原图(大图)
高性能
在 pureScale 的性能方面,我们采用某银行客户实际生产运行的信贷管理系统,对 DB2 pureScale 的性能进行了初步评估。
测试硬件环境:
成员服务器:2 台 p6-550 6C/48G
CF 服务器: 1 台 p6-550 6C/48G
存储: DS4800 48 块 146G 15000 转光纤磁盘
WAS 应用服务器:1 台 p6-570 16C/64G
测试场景:
测试业务用例:
新增客户基本信息、待处理申请查询、待处理合同查询等典型应用。
数据量:
1000 万客户。
并发用户:
1000 并发用户,900 个用户执行查询交易,100 个用户执行新增交易,读写比 90:10。
测试持续时间:
10 分钟
测试结果:
交易量:5471 tps
平均响应时间:0.15 秒
资源使用情况:
测试过程中,2 台成员服务器的 CPU 几乎满负荷运行,平均 CPU 利用率分别达到 98% 和 86%,IO 也一直保持稳定的状态。WAS 应用服务器 CPU 平均利用率达到 63%。
成员服务器 p5502 CPU 和 IO 负载情况:
图 20. 高性能 CPU 和 IO 系统资源使用情况 -1
查看原图(大图)
成员服务器 p5503 CPU 和 IO 负载情况:
图 21. 高性能 CPU 和 IO 系统资源使用情况 -2
查看原图(大图)
测试结果分析:
DB2 pureScale 在高并发(1000)、真实信贷业务应用测试中,能够充分利用硬件系统的资源,获取出色的业务吞吐量(超过 5400 的 tps)的同时,保证优异的业务服务级别(0.15 秒平均响应时间)。
高扩展性
为了进行扩展性测试,我们选取了电信行业 Home Location Register (HLR) 高吞吐量交易评测软件 TATP对 DB2 pureScale 的性能和扩展性进行测试。
测试硬件环境:
成员服务器:2 台 p6-550 6C/48G
CF 服务器: 1 台 p6-550 6C/48G
存储:DS4800 48 块 146G 15000 转光纤磁盘
图 22. 高扩展性测试结果
查看原图(大图)
测试针对读写比 90:10 和 80:20 进行了 2 种场景的测试,连接到每个成员服务器的并发客户数从 4 个逐渐增加到 64 个。从上述图表中我们可以看到,在读写比较高(90:10)的应用场合,如基于 WEB 的电子商务系统,pureScale 从 1 个成员服务器扩展到 2 个成员服务器的线性度均达到 91% 以上;而在读写比较低(80:20)的、更接近大多数客户联机交易系统应用的场合,pureScale 从 1 个成员服务器扩展到 2 个成员服务器的线性度大多达到 90% 以上。在每个成员服务器处理 64 个并发用户时,我们观察到了明显的 IO 瓶颈,CPU IO 等待较高,这是导致 83.41% 的扩展性不是特别理想的原因。
结束语
本文中 DB2 pureScale 相关规划、配置和测试工作得到了刘隶放、刘睿、王保育、周硕基、胡云飞、黄庆双、李生旺、吴丹和张忠等同事的大力支持,在此深表感谢!
- ››实战案例分析:高质量软文对网站百度排名的影响
- ››实战经验浅谈网站搬家后的优化工作
- ››DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 基础: 表空间和缓冲池
- ››DB2 XML 编程,第 1 部分: 理解 XML 数据模型
- ››DB2 pureScale 实战
- ››实战Active Directory站点部署与管理,Active Dir...
- ››实战操作主机角色转移,Active Directory系列之十...
- ››DB2 存储过程中如何使用 Optimization Profile
更多精彩
赞助商链接