查看原文
其他

实战 | ​​核心系统资源有效管理探索及研究

金融电子化 金融电子化 2022-09-24

欢迎金融科技工作者积极投稿!

投稿邮箱:newmedia@fcmag.com.cn

                                           ——金融电子化


文 / 中国农业银行数据中心  徐建斌    顾佳倩

随着商业银行业务的迅猛发展,各类业务需求也逐日剧增,核心系统作为承载银行业务的重要IT基础设施,承担着保障银行业务安全稳定运行的重任。然而,随着银行IT规模的不断扩大,相应的运维成本也越来越高,其中核心系统的CPU资源几乎是所有运维成本中最为昂贵的部分之一。因此,对大型商业银行来说,开展核心系统CPU资源计量算法方面的探索性研究,厘清消耗核心系统资源的各方面因素,进而推动性能调优以及调度上的优化配置,对控制资源成本和提高IT效能均有着非常重要的现实意义。


核心系统CPU资源消耗组成

通常,核心系统的CPU资源消耗主要可分为系统级资源消耗和应用级资源消耗两部分。其中,系统级资源消耗是指为满足核心系统运行的各个系统组件所产生的CPU资源消耗(不包含对外提供应用服务的CPU消耗);应用级资源消耗则是指联机交易、批量作业运行以及开放端查询交易所消耗的CPU资源。以联机交易为例,联机交易一般运行在处理联机事务的中间件组件和数据库组件中,这两个组件整体的CPU消耗既包含了联机交易运行的应用级资源消耗,又包含了组件自身运行带来的系统级资源消耗,由于两类资源消耗往往同时存在交集和补集,因此在实际工作中会给核心系统资源的计量带来不小的挑战。


针对上述难点,从运维统计分析的角度来看,先将每个系统组件的资源消耗看作一个不可分割的整体,厘清每个组件整体的CPU消耗情况,再逐步采用科学建模的方式进行应用级和系统级之间的资源折算,或将是一个行之有效的应对方案。基于这一思路,为合理使用核心系统资源,笔者所在运维部门根据多年核心系统生产运行和问题分析经验,总结整理了消耗CPU资源最多的10个系统组件,见表1。


表 1  核心系统 CPU 资源消耗组成情况表


核心系统CPU资源计量方法

通过对表1中的各组件进行数理统计和研究,可知:理论上核心系统的CPU资源消耗等于联机事务处理、数据库等系统组件所消耗的CPU加权之和。举例来说,如果用Xi表示各系统组件的CPU消耗,用λi表示各系统组件CPU消耗的加权系数,则可以推导出如下计算公式:


结合多年运维实践,生产运维部门发现在系统架构和表1中其他组件条件不变的情况下,CPU消耗的增长与交易率的增长呈正相关态势。为验证这一结论,笔者将表1中的10个组件作为变量,选取2020年12月下旬和2021年春节前常规工作日以及节前高峰工作日这三周的数据作为样本,通过SPSS软件对120组数据进行了CPU资源消耗组成分析,并最终得出如下公式:


经分析发现,公式2中Y无限趋近于交易分析报告中所有联机交易在联机事务处理组件中的消耗,而κ则为一个常量;公式3中A、B和C分别无限趋近于联机事务处理组件的CPU消耗、联机批交易运行组件的CPU消耗以及开放端查询交易运行组件的CPU消耗,而α、β和γ分别为三个不同的常量。经过大数据分析得出,在系统架构和应用行为没有大规模变动的情况下,κ、α、β和γ可认定为是4个基本不变的常量,但是当系统架构和应用行为有较大改动时(如CPU调整、应用架构变化等),这几个常量的数值同样会发生改变。结合实际工作来看,这一发现对核心系统资源的计量算法研究具有一定的指导性作用。一方面,由于联机交易在联机事务处理组件中的消耗计算方式相对简单,可以直接通过打印交易分析报告取得,通过对公式2的应用,可以直接化繁为简,将系统级消耗换算成联机事务处理组件的应用级消耗来进行折算,从而大幅降低运维统计复杂度。另一方面,基于上述公式还可以从交易的角度来估算其对系统整体CPU的影响,对于单交易乃至系统整体的CPU消耗分析和优化都起着非常大的推进作用。


核心系统CPU资源优化措施

在银行业务迅猛发展的大背景下,严控核心系统CPU资源成本和性能风险,保障系统的高可用性和业务连续性,以及降低资源能耗、保持系统安全稳定运行,已成为当前银行IT部门面临的重要课题。结合本文的研究结果,核心系统CPU资源的优化方式大致可分为两种:一是对前述公式中的A、B、C三个变量进行优化,降低系统整体的CPU消耗;二是对κ、α、β和γ等四个常量进行优化,降低组件和运维工具自身的消耗,从而达到降低整体CPU消耗的目标。


1.交易性能优化。在性能优化方面,商业银行运维部门通过制定交易投产前后的性能准入规范和运行优化规范,对投产的联机交易及批量交易的CPU资源消耗情况进行分类评估和约束,范围涵盖单笔交易CPU消耗、交易平均响应时间、大于1秒的SQL语句等在内的13类性能指标。其中,对于在性能测试中不符合投产准入标准的交易,可在投产评审过程中直接拒绝其投产;对于已投产但性能不佳的存量交易,则可以先控制其并发,以降低交易对系统整体资源的影响,再与开发部门通力协作,不断对交易性能进行优化。基于上述两类规范的应用,笔者所在的生产运维部门先后推动了数十个交易的优化改造,并使所有联机交易的单笔交易CPU消耗下降了10%左右。


2.采取读写分离机制。在数据库层面,通过运用数据复制软件,将核心数据库的部分数据复制到开放平台,对于只需要进行“读”数据库操作的非金融性交易,通过将其下移至开放平台运行,访问开放平台数据库,来节省核心系统的CPU消耗。而对于需要进行“写”数据库操作的金融性交易则将其继续保留在核心系统上运行。截至目前,科技部门已将数百个联机交易下移至开放平台,日均下移交易量达4.8亿笔左右,使得核心系统整体的CPU消耗下降了30%~40%。


关键业务高峰期资源调整对策

除了运用常态化优化措施以外,生产运维部门针对“双十一”、春节等关键业务高峰期,还制定了一系列CPU资源调整措施。


1.释放非核心功能资源。研究表明,在业务高峰期通过动态参数调整等手段释放一些非核心功能资源,对降低系统的CPU消耗有着一定的积极作用。例如,通过关闭联机事务处理组件及数据库组件的数据采集功能,可以有效降低近10%的系统CPU资源消耗。除此之外,也可下宕部分验证系统和监控工具,由于验证系统和生产系统分布在同一台机器中,故其CPU资源亦是共享,而运维监控工具往往是构成核心系统CPU资源消耗的重要组件之一,通过下宕验证系统和运维监控工具,将可以释放更多的CPU资源供核心系统使用。


2.应用层程序功能改造。随着电子商务的快速发展,“双十一”“双十二”等零点抢购活动逐渐兴起,活动期间快捷支付交易几乎会占据系统所有的CPU资源。对此,为降低快捷支付交易消耗,开发部门对快捷支付的程序功能进行了适应性改造:一是采用了异步补登方式,即在抢购时段的快捷支付交易中不再插入传票表,而是在事后通过运行批量的方式来补登数据,以降低核心系统CPU资源消耗;二是在抢购时段开启了异步短信功能,即扣款短信延迟到抢购活动结束后再进行发送,以进一步降低CPU资源消耗。通过上述改造,抢购高峰期的核心系统CPU资源消耗降低了30%~40%。


3.调整系统资源。由公式3可以看出,开放端查询交易的CPU消耗在整体的CPU消耗中占据了非常大的比例,这部分开销主要是下移至开放平台的联机交易在访问核心数据库时所带来的CPU消耗。当前的核心系统CPU大致可分为两种类型——GCP和zIIP,本文所述的CPU资源即为GCP资源,GCP价格较为昂贵,主要为联机交易和开放端查询交易所使用;zIIP则相对价格较低,主要为开放端查询交易所使用。据此,在业务高峰期通过将非核心系统(辅助环境)的zIIP资源调整为生产系统使用,可以增加生产环境的zIIP颗数供开放端查询交易使用,同时降低开放端查询交易对GCP资源的消耗,最终有效缓解核心系统的CPU资源消耗。


本文提出的核心系统资源计量算法目前已初具模型。路漫漫其修远兮,未来生产运维部门将持续推进读写分离及分布式核心建设的进程,并加大应用下移和数据下移力度,以释放更多的CPU资源。同时,将结合生产指标变化定期更新交易性能规范中的指标,并与开发部门通力协作形成联防联控机制,加强对CPU资源消耗过多联机交易的优化改造,以缓解核心系统CPU资源的压力。此外,还将大力推进自动化监控和自动化分析报告的推送能力建设,进而使性能及资源容量问题排查得更加及时、清晰和全面。


(栏目编辑:张丽霞)






往期精选:

(点击查看精彩内容)


● 实战 | 5G 技术对商业银行的影响分析及创新实践探索

● 实战 | 人工智能在非结构化数据场景中的科技赋能

● 实战 | 数字孪生技术在数据中心运营场景的应用

● 实战 | SDT智网建设思路与实践

● 实战 | 构建外贸综合服务场景下的联邦链






《金融电子化》新媒体部:主任 / 邝源  编辑 / 傅甜甜 潘婧

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存