libai21
作者libai212020-08-05 20:20
软件架构设计师, 海通证券

某券商集中交易系统 浪潮K1 Power 系列小型机升级和选型实践

字数 4779阅读 4148评论 2赞 14

【摘要】本文描述了某券商集中交易系统浪潮 K1 Power 系列小型机升级过程的前前后后,从机器选型到压力测试,直至升级完成。重点分享了机器选型的过程以及选型考虑的因素。还分享了上线过程中遇到的一些实际问题。

【作者】 胡晶玉, 就职于海通证券股份有限公司,任职数据库管理员,精通DB2数据库,对小型机也非常了解。在加入海通证券之前,在IBM从事DB2技术支持工作。有20年的IT从业经验。

一、集中交易系统概述

券商的交易系统很多,最核心的系统就是集中交易系统,又叫订单系统。有的券商将订单系统和清算系统进行分离。我们公司的集中交易系统是订单和清算合在一起的。除了在集中交易系统产生的订单,还有一些子系统也会产生订单,在清算时通过数据上下场,同步到集中交易系统,然后一起做清算。

所以集中交易系统对性能和可用性要求有两个最重要的时段,一个是白天的交易时间,一个是晚上的清算时间。在其它时间一般都是有维护窗口的。

二、升级到 Power9 的背景

公司原来使用的服务器是IBM Power系统小型机,关键服务器是P780,辅助服务器是P750和S824等低端机器。P ower 7系列服务器是2014年上线的,P ower 8系列是2015年上线的,在上线时同时购买了五年的维保服务。

首先P780的单机处理能力,出现性能瓶颈,已经不能满足业务需要。在2019年CPU的最高使用率曾经达到过70%,为了减轻主机压力,我们已经做了分布式的部署,将部分查询,登录的业务分到其它的机器上。

其次,由于机器已经购买了五年,厂家已经停止生产该机型,购买硬件维保成本较高,简单的比较一台32C P780的五年维保价格,就已经超过一台32C E980服务器的新购买价格。如果换算成机器的处理能力,那么这个价差会更大。当然价格的事情由于弹性很大,不是很有说服力,这里权当做为一个参考。

再次,我们使用的数据库软件DB2 10.1已经EOS(End of Service),现在的aix操作系统版本按照计划也会在2022年EOS,从长远考虑,都需要进行升级。

在这个背景下,我们启动了小型机升级计划。

三、服务器选型考虑

服务器选型我们考虑的最重要因素是单机的处理能力,响应时间,系统可靠性以及与应用的匹配度。

1、服务器型号的选择

目前 K1 Power 系统服务器是由浪潮商用机器有限公司生产的,主要型号有浪潮K1 Power E980,E950,S924,S922,S914几种型号。根据厂家的介绍,K1 Power E980专为支持最重要的关键应用而设计,是最强大、可靠、安全且可扩展的K1 Power9服务器。K1 Power E950专为动态的企业计算需求而设计,紧凑的4路系统可提供卓越的性能、极高的敏捷性和业界领先的可靠性。K1 Power S924 面向关键应用数据的适应未来需求的4U2路服务器基础设备,为关键应用负载提供行业领先的性价比优势。

根据我们的业务特点,重点考察浪潮K1 Power E980和K1 Power E950这两种机型。从测试结果看,这两种机型都能满足我们的需要。我个人觉得E980的优势在于扩展性,可以从单柜,最多扩展到4个柜,CPU数量最多可以是E950的4倍。在选用多柜服务器的时候,一定要对应用进行压力测试,确保增加CPU数量可以提高性能。最终我们选择了E980 44C为主服务器,E950 44C做为高可用服务器,S924 20C做为非关键应用设备和备机。

2、服务器CPU数量选择

POWER 9 CPU 的内核数是可变的,有8核,10核,11核。 以满配的E950为例,CPU数量可以是32,40,44。 随着核数的增加,CPU主频会降低,参考图1。 8核的CPU提供了最强的单核性能,11核的CPU提供了最大的吞吐量。 从表格中可以看到随着核数增加,主频的范围会变大,实际运行的最高频率也会降低。 我们根据测试结果,选择了11核的CPU,即单机44C。

图1 CPU核数与主频的关系

3、扩展柜的选择

我们在以前的服务器选型中,经常会选用扩展柜,这次经过对服务器的分析,发现利用服务器现有的插槽,就能满足要求。以E980为例,该服务器共有8个PCIE4插槽,一般配置2块HBA卡连接存储,2块万兆网卡,2块千兆网卡,就可以满足需要了,还有2个PCIE4插槽用于其他需求。

图2 E980插槽

4、启动盘的选择

浪潮 K1 P ower 系列服务器支持使用NVME盘做为启动盘,图2中部的四个槽位就是NVME盘插槽,NVME盘做为服务器的启动盘属于首次采用,而且 NVME盘无法做RAID,与传统的启动盘有较大差异。 我们最终选用了NVME盘做为启动盘,通过主机LVM来对磁盘进行高可用保护。 使用NVME做为启动盘,也节约了PCIE4插槽。

5、板卡位置调整

从图3可以看出,每颗CPU对应着自己的槽位。我们对 CPU 进行了绑定,0、1号 CPU 绑定给数据库使用,2、3号 CPU 绑定给应用使用。因为数据库对IO要求最高,所以把HBA卡安装到在0、1号 CPU 对应的槽位中;把网卡安装到2、3号 CPU 对应的槽位中,经过实际的测试,经过调整后的最大性能可以提高3%左右。

图3 E980系统拓扑图

四、机器选型测试

在购买机器前,进行了选型测试。主要目的是选择机器的配置以及对系统进行优化,发现隐藏的问题,这里主要介绍一下选择机型的依据。

测试方法使用我们集中交易系统,按照委托查询1:5的压力测试模型,对系统进行压力测试,应用和数据库部署在同一台机器上,CPU按照1:1进行了绑定,即一半的 CPU 绑定给数据库,一半的 CPU 绑定给应用。以数据库每秒执行的sql语句数做为性能衡量指标。

从测试结果中,我们得到以下一些结论:

  1. 机器的性能和rPerf值正相关。

  2. 对于单柜服务器,44C服务器吞吐量大于32C

  3. CPU数量相同的情况下,E980机器略好与E950,符合机器的rPerf值对比

  4. 对于双柜的E980,64C服务器由于CPU过多,无法充分利用CPU,实际测试的时候,经常会出现kernel升高的现象。

  5. 性能最好的服务器是44C的E980

五、升级方案

1、升级方案

本次升级是对原有系统进行整体的替换,所以实施起来比较简单,按照原来的系统架构重新部署一份即可,然后进行数据迁移,系统切换。

2、整体架构

整体架构如图4所示。两地三中心的部署模式,适当利旧了部分Power8系列服务器。

图4 部署架构图

六、实施中遇到的问题及处理办法

1、CPU绑定问题

根据厂商专家的说法,POWER9 的 CPU 架构设计非常合理,使用中是不需要进行 CPU 绑定的,然而根据我们实际的测试结果,对 CPU 进行绑定是有利的。这里有个很重要的原因是当 CPU 数量过多时,不是 CPU 自己通讯有问题,而是应用对 CPU 的调度会出现问题。所以建议在实际使用时,至少要测试一下绑定的效果,然后选择性能最好模式。

2、 CPU运行主频低

我们共有4台E950机器,其中三台的CPU主频为3.5GHz,一台机器主频为3.2GHz。都开启了最大性能模式,后来发现是HMC里面配置的参数不一样导致的。正确的参数如下:

通过HMC,勾选E950,登录ASMI ,进入菜单Power Management--->Tuning Parameters

Enable/Disable workload optimized frequency

Current value:Enable

new value: Enable

3、 CPU 线程数的选择

根据厂商的说明,POWER9 CPU建议使用8线程。由于以前的服务器是使用的4线程,所以对这个还是有疑虑的。从官方材料看,从AIX 7.2 TL3开始,SMT8是POWER9平台的默认设置,性能比SMT4有26%提升。我们经过实际测试,符合预期,所以最终选择了SMT8模式。

4、AIX 版本选择

对于AIX 版本选择,我们一般是按照最佳实践来选的,我们测试的第一个版本是7200-03-02,但在测试过程中发现了缺陷IV12633:J2GT THREAD PERFORMANCE ISSUES APPLIES TO AIX 7200-0319/05/10 PTF PECHANGE,该缺陷会导致 CPU kernel使用率变高,该缺陷是在7200-03-03中被修复的,所以最后选择7200-03-03版本。

5、LVM遇到存储故障时,IO中断时间过长

我们在测试双存储LVMMirror的时候,发现当一个存储发生故障时,会产生IO中断,需要经过5分钟才能恢复正常。经过与实验室沟通,这个问题在aix 7.2TL3中就是这样设计的,当FC链路故障时(如link down),DiskDriver尝试LUN Reset,如果在限定时间内LUNReset不成功,则认为IO失败。如果LUN Reset等待时间过短,在高IO压力的情况下(同一个block在同一时刻发生多次写IO),发生FC路径切换时,有较低概率造成data loss/corruption。为保证数据完整性,AIX7200-03-03 中延长了 "LUN resetretries"的等待时间。在aix7.2 TL4中,增加了一个新参数,rw_max_time,最小可以设置为60,当发生单存储故障时,IO中断时间为60秒。且没有数据丢失风险。

6、机器时钟不准

在机器运行一段时间后,发现机器时间误差较大,咨询厂家得知,Power8以后的机器系统时间误差会比Power7以及以前的服务器大一些,这个是为了适应更高主频的总线导致的,一天偏差正负三秒以内属于正常现象。如果对系统时间准确性较为敏感,一般建议配置NTP。

7、netstat -an输出显示错误

在运行netstat -an的时候,输出会有“"dropped due to memory allocation failure"”。

经查,这是一个已知APAR,IJ16586-NETSTAT PRINTS SOME MESSAGES INCORRECTLY。安装对应补丁即可。

七、实际使用效果及实践经验总结

1、升级后的效果

升级后系统 CPU 使用率大幅度下降,系统响应时间变快,吞吐量大幅提升。

这里放了两张系统运行图,图5是P780的一天的CPU和IO使用情况,图6双E980一天的CPU和IO使用情况,这两天的业务量差不多。

CPU的平均使用率从7.9%下降到2.%,CPU的最高使用率从63.3%下降到22.1%,可以说,通过硬件升级,现在系统完全可以满足性能要求。

另外一个重要指标就是升级后,清算时间缩短了25%。

图5 P780一天运行情况


图6 E980一天运行情况

2、 实践经验总结

在进行机器升级的时候,一定要对新机器有充分的了解,如果有条件的话,要进行充分的测试。就本次升级而已,测试起到了非常重要的作用,机器型号的选择, CPU 数量的选择,以及相关软件版本参数的确定,基本上在测试阶段就都确定下来了,为顺利上线奠定了基础。

具体就 K1 Power 机器选型,我个人有如下建议,追求极致性能和极致可靠性的系统(不差钱)可以选择E980服务器;对可靠性和性能有要求,最佳性价的机器推荐E950;在选择单柜E980或者E950的情况下,如果追求最强的单机吞吐量建议选择44C机型;如果单机44C机器无法满足要求,需要更多的CPU,那么就选择E980机型。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

14

添加新评论2 条评论

#dragoncxb项目总监, kunlun
2020-08-22 15:25
文章能够切合实际,从选型、迁移到实施完整的进行编写,非常值得借鉴。
#cpc1989存储工程师, 某保险公司
2020-08-20 09:05
文章内容很有干货,从设备选型写到到测试再到实践经验等方面,都让人收益匪浅。特别是文中提到的出现的机器时钟不准和netstat -an输出显示错误等问题,最近也恰好遇到,也确实是实践过程中值得注意去规避的问题;当然,这些实践结论是离不开完备的测试方案和实践的,希望作者有机会能更多分享下具体测试方面的经验。
Ctrl+Enter 发表

核心数据库服务器选型优先顺序调查

发表您的选型观点,参与即得50金币。

作者其他文章