在数据仓库系统中,系统I/O性能是系统整体性能很关键的因素,往往很多时候,我们在思考在采用数据库,IBMpServer和IBM存储的的情况下,系统的I/O该怎么配置。
本文将在这方面进行技术的探讨。
非共享体系的概念
一个数据库包括一个或者多个数据库分区(Partition)。每个分区在本质上就是一个小型的数据库:拥有且只拥有自己的数据、日志、锁以及其它的组成数据库的基本要素。所以,DB2多分区数据库也称为是基于非共享(Share Nothing)或者海量并行处理(MPP)构架的数据库。
在一些OLTP和ERP的环境中,由于数据量相对小,而且每次只是查询很少比例的数据。而在数据量很大,要求针对大量数据的并发查询的环境,比如数据仓库的环境,就需要多分区数据库。
基于分区的、非共享的结构的好处是:
-减少了对共享资源(内存,I/O通道,存储)的访问冲突,提高并行度;
-分区内(SMP)并行和分区间(MPP)并行的完美结合。
系统配置BCU(Balanced Configuration Unit)概念
一个系统应该是均衡的系统,是指把处理器、内存、存储和DB2数据库的Partition(分区)、配置参数等合在一起,作为一个可扩展的基本建设单元。通过多个单元复制生成大型系统。
每个单元BCU是最小的、可复制的硬件和软件的组合。针对BI系统,单元保证了基础构架上扩展性,提供了磁盘I/O,内存、处理器、网络的优异扩展性能。如下图:
一般的,在计算机系统中都会有瓶颈存在。比如一个服务器可以驱动峰值为28800IOs/sec的存储系统,然而配置的存储子系统只能达到14440IOs/sec。 那么服务器处理I/O要求高的负荷时,最多将有50%的时间处于I/O等待。所以,合适比例的HW/SW组织到一起,是BCU成功的关键。
通过对客户现有的BI系统配置经验、平均负荷分析,以及组成BCU的各个部分的专家工作下,考虑各个部分之间的平衡,同时也考虑一定的性价比等因素,形成BCU。这样的BCU在保证性能的前提下,提供了高的性价比。
BCU在保证性能的前提下,提供了高的性价比。
BCU和数据库分区
在BCU之下,还有一个BPU的概念。所谓BPU,是一个逻辑的概念,是指服务于一个数据库分区所需的资源。BPU在进行数据仓库的容量规划时,非常有用。由于在不同的数据库分区之间平均分配数据和资源,所以从处理器、内存、I/O等的角度看,确定了BPU的系统需求,那么就可以利用这个信息来计算整个数据库的硬件的配置。
BPU在系统的设计和实施阶段也非常有用。可以在BPU层次来设计物理硬件、存储、数据库参数配置等,然后把该BPU的配置复制到整个BCU。这样就大大简化了系统的初始系统设计、配置,管理、维护,未来的系统升级等等。
系统I/O性能估算原则
由于采用非共享体系结构,因此我们只需估算一个分区(BPU)的性能,然后线性增加即可。
按IBM的BCU的经验,一个理想的系统:
- 一个BCU
-分区BPU与CPU比率
-Power5 processors = 1 -2 BPU/CPU
-而在AIX power5的机器上,一般是一个CPU对应一个以上BPU,考虑到本次测试p570 power5+ 1.9GHz,我们建议,采用BPU数目略微多于CPU数目
-内存与分区BPU比率
- 4-8GB/BPU
- I/O 容量与BPU 比率
-BCU – 8DP, 600MBs -1200MBs,则DP 75MBs-150MBs
即一个分区BPU,使用0.5或1块2G FC卡
举例估算:两台p570运行数据仓库系统,应该配置多大存储带宽
-主机p570 16C 64GB 两台
-采用16个BPU,即数据库分区,
-BPU内存比是1:4
-主机光纤卡 16
-每台机器有16个分区BPU,则一个BPU,使用1块2GB FC,可以达到150MBs(按照一般测试值估算)
-磁盘
-数据库非共享的,因此每个BPU,应使用一个或多个独立的盘包
-磁盘整体数量,应该和光纤卡匹配,跟经验,1块146GB 1K磁盘大概能够达到10MBs的速度.,则每个分区需要15块磁盘.
-则总共需要15*16=240块磁盘,I/O性能才是匹配的
-磁盘阵列,也应要匹配16块光纤卡所需要的带宽.
总结:本文中,我们是采用系统配置要平衡的概念进行I/O配置评估,即看待一个系统时,其CPU和内存,主机I/O带宽,存储带宽应是平衡和一致的。合理的配置是保证系统整体性能的关键。
1