WEB开发网
开发学院数据库DB2 DB2 pureScale 实战 阅读

DB2 pureScale 实战

 2010-09-30 00:00:00 来源:WEB开发网   
核心提示:本文介绍了 DB2 pureScale 软件的安装配置方法及步骤、常见问题及解决方案,帮助读者快速有效地搭建 DB2 pureScale 环境;通过对客户实际生产中经常采用的 Websphere Application Server + DB2 方案、CICS + DB2 方案、多线程 DB2 CLI 应用程序 + D

本文介绍了 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 中的配置
DB2 pureScale 实战

查看原图(大图)

建议 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 配置
DB2 pureScale 实战

查看原图(大图)

需要注意的是,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 实战

查看原图(大图)

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 实战

查看原图(大图)

如果安装的环境不干净,安装过程中可能出现一些问题。下面我们介绍安装在非干净环境下安装 DB2 pureScale 遇到的常见问题和解决方案。

pureScale 软件安装配置常见问题及解放方案

DB2 pureScale 安装过程中经常出现的问题是,目标服务器上曾经安装过 DB2 pureScale,当再次进行安装时,环境未清理干净,导致 DB2 pureScale 安装无法继续下去。下面我们就安装过程中的常见问题和解放方案进行分析:

问题 1:安装程序检测到远程主机 RSCT 域存在,安装程序无法继续

图 5. DB2 pureScale 安装配置常见问题 1
DB2 pureScale 实战

这时,我们如下执行命令,屏幕输出如下:

 #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
DB2 pureScale 实战

如上问题需要将服务器从 GPFS 集群中删除,执行如下命令进行清理:

 #/usr/lpp/mmfs/bin/mmdelnode – f 

问题 3:DB2 注册项遗留,安装程序无法继续

图 7. DB2 pureScale 安装配置常见问题 3
DB2 pureScale 实战

如上问题需要手工清理 DB2 注册项,执行如下命令如下进行清理:

 #rm /var/db2/* 

问题 4:目标服务器产品级别不一致,安装无法继续

图 8. DB2 pureScale 安装配置常见问题 4
DB2 pureScale 实战

如上问题是由于在目标服务器上已经安装了 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 配置交易级别工作负载均衡
DB2 pureScale 实战

查看原图(大图)

图 10. WAS 配置交易级别工作负载均衡
DB2 pureScale 实战

查看原图(大图)

A2. 在 WAS 中配置 Pre-Conn ACR

修改数据源参数 (Data sources > DBNAME > WebSphere Application Server data source properties)

图 11. WAS 配置连接前客户端自动路由
DB2 pureScale 实战

查看原图(大图)

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 最佳实践架构
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
DB2 pureScale 实战

查看原图(大图)

正常工作时,成员服务器 p5502 资源使用情况:

图 14. 高可用性及负载均衡 -2
DB2 pureScale 实战

查看原图(大图)

模拟宕机后,我们使用 db2instance -list 命令观察到的成员服务器、CF 服务器的状态如下图。成员服务器处于”STOPPED”的状态。

图 15. 高可用性及负载均衡 -3
DB2 pureScale 实战

查看原图(大图)

模拟宕机后,我们观察 WAS 应用,没有发现报错情况;同时观察成员服务器 p5503 的负载情况,CPU 利用率为 60% 以上,应用的负载压力明显转移到存活的成员服务器 p5503。

图 16. 高可用性及负载均衡 -4
DB2 pureScale 实战

查看原图(大图)

我们然后重新启动成员服务器 p5502,下图为使用 db2instance -list 命令观察到的各成员服务器和 CF 服务器的状态,均为”STARTTED”状态。

图 17. 高可用性及负载均衡 -5
DB2 pureScale 实战

查看原图(大图)

故障服务器 p5502 恢复后,我们观察 WAS 应用,没有出现报错的情况;观察 2 台成员服务器,发现工作负载重新均衡到 2 台成员服务器。

下图为成员服务器 p5502 的系统负载情况,CPU 使用率重新回到 40% 左右。

图 18. 高可用性及负载均衡 -6
DB2 pureScale 实战

查看原图(大图)

下图为成员服务器 p5503 的系统负载情况,CPU 使用率重新回到 40% 左右。

图 19. 高可用性及负载均衡 -7
DB2 pureScale 实战

查看原图(大图)

高性能

在 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
DB2 pureScale 实战

查看原图(大图)

成员服务器 p5503 CPU 和 IO 负载情况:

图 21. 高性能 CPU 和 IO 系统资源使用情况 -2
DB2 pureScale 实战

查看原图(大图)

测试结果分析:

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. 高扩展性测试结果
DB2 pureScale 实战

查看原图(大图)

测试针对读写比 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 相关规划、配置和测试工作得到了刘隶放、刘睿、王保育、周硕基、胡云飞、黄庆双、李生旺、吴丹和张忠等同事的大力支持,在此深表感谢!

Tags:DB pureScale 实战

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接