光大银行在数字化转型过程中,加速构建全栈信创基础设施体系,根据“双栈并举、一栈多芯”云计算平台技术规划,同时实现对鲲鹏和海光两大算力生态体系的全面兼容。在推进应用上云期间,全栈云团队进一步面向金融类业务系统对云平台软硬件进行了端到端性能优化。本文以鲲鹏生态为例,系统性总结相关优化方法和实战经验。
基础调测环境
在云平台性能调优实践中,硬件采用鲲鹏生态产品,操作系统选用麒麟系统,业务应用层采用容器部署,分布式消息、分布式缓存等中间件产品采用虚拟机部署,分布式数据库根据容量和性能需求灵活选择虚拟机或裸金属部署模式。上述设计既实现了全栈云平台软硬件的自主可控,又为应用系统提供了高效、灵活的运行环境(见图1)。
图1?全栈云基础设施架构
全栈云调优五步法
全栈云建设初期已对云平台实施了整体调优,确立了配置基线和性能基线。在此基础上,全栈云运维团队以提升应用系统关键性能指标为核心目标,围绕上云应用的交易吞吐量和交易处理时延,对应用运行环境进行深度性能优化。
在对多套应用系统运行环境的调优实践中,总结出一套行之有效的全栈云调优五步法(见图2)。
图2?全栈云调优流程
第一步:基准建模与目标设定。调优工作伊始,首要任务是建立全面的基准数据和明确的优化目标。基准数据涵盖应用系统架构、部署架构、组网模型、软硬件配置参数、测试场景设定等关键信息。优化目标则是依据当前软硬件架构特性,设定应用系统期望达到的性能指标。通过对应用系统及其运行环境的全面评估,才能够更清晰地分析性能瓶颈所在,并预测优化措施实施后的性能变化趋势,为后续调优工作奠定坚实基础。
第二步:压力测试与数据采集。运用峰值负载模拟或专业压测工具,对系统进行高强度加压测试。在测试过程中,详细记录系统负载和程序运行数据,包括应用交易量、交易响应时间、交易响应率、交易成功率、CPU使用率、内存使用率、网络带宽及时延等关键指标。通过精确且全面的压测数据采集,充分识别业务分段时延和吞吐量的波动规律和尖峰抖动,有助于深入分析性能瓶颈,准确评估优化措施的实际效果。
第三步:瓶颈识别与根因分析。基于压力测试数据,深入剖析每笔交易处理过程中的系统性能瓶颈,通常表现为CPU繁忙、I/O等待、网络延迟等问题。值得注意的是,在识别性能瓶颈过程中,需综合考虑整个测试系统,包括测试工具特性、测试组网方式、环境网络带宽等因素,许多看似是应用性能问题的情况,实则是由测试工具或测试组网的缺陷导致。因此,在性能优化初期,应优先排查上述潜在影响因素。
第四步:精准优化与全面验证。确定应用性能瓶颈点后,则需制定针对性的精准优化方案,完成优化方案部署实施后,重新启动压力测试,对应用性能进行全面监测和数据分析,以评估优化效果。需要特别注意的是,并非所有优化措施都能带来正向优化,在多个正向优化措施的不同组合之下,产生负向效果的情况也会经常遇到。因此,建议预先准备好详细的回滚操作方案,避免因不可逆的优化措施导致环境恢复困难,造成时间和资源的浪费。
第五步:基线迭代与知识沉淀。若调优效果达到预设目标,则将有效的优化措施及配置参数进行系统性总结和归档,经团队评审后,纳入全栈云平台配置基线,实现基线的迭代更新。若优化效果未达预期,则记录过程数据,重复步骤2至步骤4,开展下一轮调优工作。若出现负向优化效果,应立即执行回滚操作,并调整优化方案。通过这一过程,不断积累云平台调优经验,实现知识的有效沉淀。
全栈云调优严格遵循上述调优五步法,对不同版本软硬件的海量配置参数进行了系统性优化。以下将重点总结效果显著的典型优化措施。
全栈云调优实践
面向应用系统的性能调优,需充分考虑业务应用的多样性场景。例如,容器场景中,重点优化容器编排与资源调度策略,合理分配服务器的算力、内存及存储资源,提升容器集群的整体吞吐量和响应速度;数据库场景中,通过优化服务器的存储I/O配置、内存分配策略等,增强数据库的读写性能和数据处理效率,实现海量数据的高效存储与快速检索。
1.全栈云平台调优
(1)虚拟机绑核
鲲鹏处理器采用NUMA(Non-Uniform Memory Access,非统一内存访问)架构,该架构有效突破了传统服务器SMP(Symmetric Multi-Processing,对称多处理)技术在CPU核数上的限制。在NUMA架构中,多个CPU物理核组成一个节点,每个节点类似于一个对称多处理机(SMP)。同一节点上的CPU物理核之间通过OnChip Network进行高速片上通信,不同节点的CPU物理核之间则需借助Hydra Interface实现高带宽、低时延的片间通信。
在NUMA架构下,CPU物理核访问内存的耗时与内存相对处理器的位置密切相关,访问本地内存的速度明显更快。通过全栈云平台的绑核配置,可将特定进程精准绑定到NUMA资源组内,或其中一个CPU物理核上,使进程优先访问本地内存,从而大幅提升数据读取和写入速度。将虚拟机进行CPU绑核处理,使每个虚拟机独占一个NUMA资源组,相当于应用程序在单个NUMA内运行,充分发挥鲲鹏CPU的性能优势。经测试,在同等条件下,绑核后应用系统业务处理性能提升幅度超过8%,上述绑核调优同样适用于裸金属服务器部署的业务系统。
(2)云上SDN网络优化
在云上SDN(Software Deffned Network,软件定义网络)网络环境中,不同VPC(Virtual Private Cloud,虚拟私有云)之间的节点互访报文需在网络节点进行软件转发,而相同VPC内节点互访报文则直接通过本地虚拟交换机转发,本地转发性能优于网络节点软件转发,硬件转发性能更是远超软件转发。基于上述特性,制定两项网络性能调优策略:一是将同一套业务系统中紧密互联的应用服务组件部署在同一VPC内,减少系统内组件交互流量绕行网络节点的情况;二是通过技术手段将网络节点的软件转发转换为硬件交换机转发,大幅提升报文转发性能,实测报文经过网络节点转发时间可从20毫秒以上缩短至40微秒左右。
以容器、虚拟机和裸金属混合部署的复杂应用系统为例,根据上述云网络调优策略,将容器和虚拟机集群部署在同一VPC内,容器和虚拟机之间报文交互在本地虚拟交换机转发,但由于裸金属与虚拟化的云化技术差异,裸金属服务器上无本地虚拟交换机,交互报文需经过云上网络节点软件转发。因此,将裸金属集群部署在另一VPC内,同时把两个VPC互访报文引流到边界交换机进行硬件转发。优化后,应用系统网络交互性能提升约30%。
(3)关闭负载均衡会话保持
云上应用经过分布式改造,不再依赖会话保持功能来缓存用户会话数据,而是通过数据库、全局缓存等机制保证用户数据的一致性。因此,可优化关闭弹性负载均衡服务的会话保持功能,从而提升系统性能。
均衡系统负载:关闭会话保持后,负载均衡器在分配请求时,不受特定客户端请求固定到某一服务器的限制,能够依据服务器实时负载情况,将请求动态分配到当前负载最小的服务器,实现服务器资源的更高效利用。
避免会话粘连:在银行交易系统中,若某个服务器出现故障或性能下降,如果客户端请求因会话保持持续发送到该服务器,会导致交易处理缓慢甚至失败。关闭会话保持可有效避免这类因会话粘连导致的问题,确保请求及时分配到健康服务器进行处理。
提高连接效率:关闭会话保持后,负载均衡器能够更高效地管理连接,根据服务器处理能力和当前连接数动态分配新连接,减少连接建立和释放的开销,提升整体连接效率,加快系统响应速度和并发性能。
实际应用中,关闭负载均衡器会话保持功能后,经过分布式改造后的金融类应用系统性能均有显著提升,平均提升幅度达15%。
(4)操作系统内核优化
部分容器化部署的JAVA应用依赖于虚拟化层操作系统内核进行功能增强和性能优化。在调优实践中,升级虚拟化层操作系统内核至最新稳定版本,应用系统业务处理性能获得约3%的提升。
当前,信创操作系统还处于快速演进阶段,因此,在运维工作中,应建立云平台侧操作系统版本定期评估机制,根据实际需求进行版本更新。该优化方法同样适用于用户层操作系统。
此外,在云平台软件优化过程中,还尝试将传统JDK替换为鲲鹏生态的毕昇JDK、把文件系统升级为ext4,以及调整操作系统内存调度参数等方式,亦取得一定的调优成效。
2.鲲鹏服务器调优
(1)内存刷新自适应
通过调整鲲鹏服务器BIOS参数配置,将内存刷新率设置为“Auto”自适应模式。在此模式下,服务器内部监控系统实时监测CPU使用率、内存使用率、磁盘I/O速率、网络带宽占用等关键指标。当CPU使用率升高时,服务器自动降低内存刷新速率,避免频繁刷新占用过多CPU资源,确保计算任务高效执行。这种自适应机制同样适用于网络流量和磁盘I/O负载较大的场景。
通过动态调整内存刷新速率,鲲鹏服务器实现了在不同工作场景下各组件间资源的动态平衡,整机性能提升约6%。
(2)关闭CPU预取
金融交易系统对实时性要求极高,且数据访问随机性强,传统CPU预取机制存在一定局限。预取操作可能频繁抓取无用数据,占用宝贵的缓存空间,当真正需要的数据到来时,系统不得不频繁进行缓存替换,即出现缓存颠簸现象,这将严重降低系统性能,导致响应速度变慢、交易处理延迟。关闭CPU预取功能可有效减少因预取无效数据引发的缓存颠簸,显著提升系统响应速度,保障业务交易高效执行。
关闭CPU预取功能后,消除了无效预取操作,避免了缓存资源浪费,金融交易类应用程序运行效率大幅提升。实测数据显示,系统性能提升幅度超过12%。但需注意,此项调优仅适用于数据访问随机性强的应用系统,对于数据访问连续性强的数据库、大数据类应用可能产生负向影响。因此,在调优过程中需增加对比测试,依据测试数据谨慎评估后再做选择。
(3)服务器性能模式
鲲鹏服务器能效模式分为节能模式和性能模式,在节能模式下,CPU工作频率会动态调整,最高可达到标称频率,而在性能模式下,CPU固定运行在标称频率,同时会调整CPU核心的调度策略,减少任务在不同核心之间切换所带来的开销,提高CPU资源的利用效率,确保任务执行的高效性与稳定性。经过实验室对比测试,在数据库场景下,开启性能模式前后,压测性能指标提升了11%,而服务器能耗仅略有上升。
(4)网卡驱动优化
现阶段,信创硬件仍处于快速迭代发展阶段,更新硬件及驱动软件版本往往能带来显著的性能提升。评估鲲鹏服务器优化时识别到特定网卡的新版本驱动有两项功能对性能有较大优化:一是优化数据传输算法,改进数据包的封装、解封装以及传输队列管理方式,降低数据传输延迟和丢包率;二是增强硬件兼容性,更好地适配鲲鹏处理器的多核并行计算能力,提升网卡与处理器之间的协同调度效率,提高系统资源利用率。
将鲲鹏服务器网卡驱动升级后,网络传输性能平均提升8%。这表明调优过程中,除了关注配置参数优化,还应重视软硬件本身的升级演进。
在鲲鹏硬件优化过程中,亦曾尝试调整CPU、内存、网卡及总线载荷或缓存等硬件参数,以求充分释放硬件性能,但经常会引发硬件功耗上升,甚至冲击整机稳定性。因此,在面向应用的调优工作中,需要在应用系统调优和运行环境调优之间寻找一个合理的平衡点,不过度压榨基础设施性能,有效避免云平台长时间运行在超高负荷的极端状态。
通过多轮深度优化,全栈云平台的整体性能得到显著提升,基于鲲鹏生态软硬件的云上应用,实测性能平均提升幅度达52.3%,同时积累了丰富的云平台优化经验,形成了一套行之有效的方法体系和过程工具集,大大加速了应用上云进程。