5 硬件优化配置建议
硬件配置方面从MPP集群的硬件要求和性能提升方面展开描述对于硬件环境的要求和建议,并作为现场环境检查内容的参考。
硬件物理部署建议
建议MPP集群节点服务器、加载机、网络交换机的物理部署遵循以下原则:
l 配备足够的电力功耗,使用UPS系统;
l 部署服务器的冗余备用电源;
l MPP集群中,数据副本分布不同节点的服务器位于不同机架;
l 进行双网卡的绑定,并处于高可用(单活)模式;
l 采用交换机高可用;
l 集群服务器、加载机、交换机等建议放置在一个机房内;
要求使用独立的数据加载机器;建议配置2台以上的加载机;
磁盘设置建议
l 磁盘建议高转速、多磁盘,推荐选用15K的高转速磁SAS硬盘;
l 推荐使用本地磁盘或独立的存储设备,避免使用共享存储;
l 配备raid卡、打开raid卡的写缓存;
l 推荐带有电池的raid卡,推荐raid卡缓存为1GB及以上;
l 为操作系统准备独立的raid进行操作系统安装,如:2个600G的10 KB SAS盘做raid1作为操作系统安装路径;
l 建议设置热备盘;
l 建议不多于8块盘做一个raid5;
如16块同规格SAS盘情况下,建议每5个硬盘做一个Raid5,然后3个raid5做raid50;一个单独盘作为热备盘;
l 建议单个raid磁盘下,只创建一个逻辑卷,即在单个raid磁盘情况下,不建议为日志、数据库、备份创建独立的逻辑卷;
l 建议使用ssd存储设备作为catch等高速存储;
建议设置raid条带尺寸不低于256K,GBASE数据库的IO主要为DC(数据包)读取,应设置较大的条带尺寸;
网卡及网络配置建议
l 配备2块万兆光纤网卡,并进行绑定;
l 网卡绑定采用主备单活的模式,提供高可用性;
l 配备两个光纤交换机组成高可用备份;
l 每台服务器的2个绑定的万兆网卡连接到两不同的光纤交换机;
l 每服务器的单活模式下的工作网卡连接到同一个光纤交换机;在发生网卡、交换机高可用切换后,及时将每台服务器的工作网卡切换到一台光纤交换机上;
l 为GBASE集群各节点、加载机设置一个vlan;
l 完成网络配置后,应使用netperf等测试工具进行网络I/O性能的测试确认配置的正确性;
l 配备千兆网卡,连接千兆网络环境,用于集群管理、外部系统接口等;
l 主备交换机的级联端口:避免单点故障,提升带宽,建议绑定2个端口,如果是用作集群内部通讯的万兆交换机同时避免服务器主备网卡的切换,需要根据业务通讯量绑定2个以上端口;
l 因为现场交换机有可能与其他服务器共用,为了避免广播消息对业务的影响,需要单独给GBase服务器划分VLAN,管理和业务网络的VLAN分开;
l 使用的端口配置好VLAN,不使用的端口手工shutdown;
l 建议接入网管系统,以便主动预警。
内存配置建议
根据业务应用场景的不同,内存需求的评估方式也不同。根据工程经验,内存与物理CPU核数比为4:1~8:1,针对MPP集群不同的业务场景可以根据需要弹性调整内存配置。
复杂场景的内存配置建议
从以下几个方面考量数据库运算过程中单个MPP集群节点(gnode)各算子的内存需求(假定10节点集群):
l 参与运算的数据量
以一个2亿行的表与3千万行的表进行join运算,并对join运算结果进行group by聚集,最终得到的结果行数为1.5亿行的场景为例,参与运算的数据量为2.3亿行,超过100GB(不含不参与运算的字段),得到的结果集也超过80GB;对于10节点集群,每节点承载的运算数据量超过10GB。
l sql执行过程中的中间结果集大小
如两表join生成的hash table的尺寸大小; sql执行过程中生成的临时表的大小;这些中间结果集的大小通常不会小于参与运算的原始数据量。上例场景,假设每个gnode的中间结果集大小也为10GB。
l sql并发数
客户的业务通常都要求数据库支撑5~100个不等的并发。
综上,单个集群节点在上述场景下的内存需求为10~20GB,在10个类似sql场景并发,单个gnode的数据库运算内存需求为100GB以上,此外还应为gnode分配20GB以上的内存用于数据缓存。
按照数据库使用操作系统总物理内存60%~80%的比例,在上述场景下,建议单服务器的总物理内存为120G/0.8=150G以上。
按照项目工程经验,复杂应用中多以hash
join、group by、order by等数据库运算为主;在gnode服务器内存配置为128G~200G,混合型(包含多种数据库运算)复杂应用中, GBASE集群的算子buffer大小可如下设置(考虑并发场景,且并发数在10~20之间):
gbase_buffer_distgrby=2G
gbase_buffer_hgrby=4G
gbase_buffer_hj=4G
gbase_buffer_sj=2G
gbase_buffer_sort=4G
gbase_buffer_result=2G
gbase_buffer_rowset=2G
考虑并发场景情况下,还需考虑GBASE集群的gbase_parallel_degree、gbase_parallel_max_thread_in_pool参数配置,详见《GBase 8a MPP Cluster管理员手册》中的介绍。
简单查询类的内存配置建议
主要应用场景为金融行业的流水详单查询业务。
针对该类型场景的内存评估,主要依赖于热数据的比例和数据量。热数据的总量即为内存需求量。
以某银行的业务流水详单为例,以月表方式存储6+1个月的历史数据;每天的数据量为600GB;全数据生命周期内的总数据量为600GB/天 * 30天/月 * 7个月 = 126T;
业务流水详单查询主要以当月数据查询为主,可定义当月的详单数据即为热数据,假设详单查询的字段个数只占总字段个数的1/3,则热数据的总量约为18TB/3=6TB,即在最理想情况下MPP集群需要6TB的内存缓存全部热数据。
MPP集群的列存储特性所具备的高压缩比、智能索引,以及配合高性能的磁盘I/O,可以在减少对大内存的依赖的情况下,满足高性能的查询要求。根据项目经验,内存缓存50%左右的热数据即可满足详单的查询性能要求。即MPP集群的总体内存需求为6TB*50%=3TB,按照数据库服务器内存利用率为60%~80%计算,推荐MPP集群的总内存为3TB/0.8=3.75TB;假设集群的节点个数为15,则每MPP集群节点的内存配置为3750GB/15=250GB。
SWAP配置建议
通常SWAP的大小应不小于物理内存大小;对于服务器物理内存超过64GB的,建议SWAP的大小为物理内存的50%~100%,如服务器的物理内存为128GB,SWAP可设置为64GB。
加载机的内存配置建议
加载机的内存可通过CPU进行推算。按照CPU的每个物理核管理4G~8G内存进行推荐配置。
如加载机还需承担ETL功能,或者文本数据排序功能,则按照8GB每CPU物理核的配置推荐。
加载机需要通过并性方式进行待加载数据的hash分桶运算因此对CPU的核数有一定要求,要求加载机的CPU物理核不小于8,推荐CPU物理核数为16个及以上的服务器作为加载机,由此加载机的内存不小于64GB。
CPU配置建议
使用计算能力更高的CPU能提供更好的性能;推荐配置主流的中高端Intel CPU的服务器。
本章节从GBASE集群节点CPU核数、超线程是否开启等方面进行建议:
l 建议配置使用最新工艺和技术的CPU,推荐使用最新的中高端的intel CPU;
l 对于统计分析类的业务场景,建议关闭CPU的超线程;对于高并发、短查询类的业务场景,建议开启CPU的超线程;
l 建议MPP集群节点服务器CPU物理核数大于等于16;
l 建议加载机的CPU物理核数大于等于8;
l 总内存容量/CPU总物理核数大于等于4小于等于8;
组网配置建议
Ø 增加级联绑定
由于本项目采用大规模集群数据库系统软件,各节点间的数据通信频繁,因此建立在内部组网时,万兆交换机之间采用级联的方式,以提升网络吞吐量,从而提高更大的端口密度和更高的性能。
交换机进行级联时,应该尽力保证交换机间中继链路具有足够的带宽,为此可采用多工技术和链路汇聚技术。交换机端口采用多工技术后,不但相应端口的吞吐量加倍,而且交换机间中继距离大大增加。链路汇聚也叫端口汇聚、端口捆绑、链路扩容组合,由IEEE802.3ad标准定义。即两台设备之间通过两个以上的同种类型的端口并行连接,同时传输数据,以便提供更高的带宽、更好的冗余度以及实现负载均衡。链路汇聚技术不但可以提供交换机间的高速连接,还可以为交换机和服务器之间的连接提供高速通道。
Ø VLAN隔离
MPP数据库存储来自客户业务系统的明细数据,同时还会保存经过加工的汇总数据和指标数据,因此其对于数据安全及系统稳定性具有极高的要求,为了减少系统间的相关干扰,建议本项目MPP数据库时建立单独的VLAN以进行子网划分,通过VLAN隔离,可有效控制网内广播风暴,提升系统安全性。
Ø 防火墙
将MPP数据库置于网络防火墙后,甚至专用数据库防火防火墙后,防止SQL注入攻击,以增加主动防御机制,实现数据库的访问行为控制、危险操作阻断、可疑行为审计。




