在信创建设的大环境下,不少用户在落地实践上仍有顾虑——“同样价格的设备,国产核心技术的设备性能不如国外核心技术的设备性能高。”
一方面是担心硬件芯片侧自身存在性能瓶颈,另一方面则是过去的软件、操作系统与信创硬件之间缺乏深度适配与调优,未完全发挥硬件潜力。
深知用户疑虑,深信服应用交付AD经过数年全情投入,打磨信创能力,正式推出超过170G档的信创盒式设备,覆盖从10G到170G性能级别的全档位需求,满足用户在核心业务承载中的超高性能需求。
今天,我们来详细剖析,在达成170G性能级别的路上,信创AD是如何精细打磨并优化技术细节,真正做到信创高性能。
面向信创CPU的高并行技术+数据面和管理面分离
充分发挥信创CPU性能潜力
信创CPU普遍具有核数较多的特点,这对软件的并发处理能力提出了更高要求,深信服AD在信创环境下实现全应用层架构,并实现了完全并发无锁的数据处理技术。
数据传输分为物理层、内核层、应用层,默认情况下,数据从物理网卡逐层传递到业务应用。一般的负载均衡产品会在内核层以模块的形式开发业务,或者直接在内核层修改代码以实现自身业务逻辑,在这种方式下,数据传输过程中会发生多次数据交换和上下文交换,造成数据传输过程中不必要的性能损耗。
AD通过将数据面和管理面分离,提升可靠性的同时,降低数据处理过程中因管理面打断导致的运行环境切换,提升数据面传输的效率,降低数据转发过程中的性能损耗。
跨过内核层的应用层驱动技术
减少硬件层和内核层对应用层的上下文切换和打断
数据面采用纯应用层架构,硬件通过应用层驱动接管,不再走内核中断,避免了内核和应用层的上下文切换,也减少了硬件中断对正在执行的流程的打断。所有数据处理流程实现自主控制,协议栈可以做到高度优化。
全栈无锁技术
保证下发流程不影响数据面数据转发性能
控制面和数据面使用全栈无锁技术,保证配置下发流程的原子性,且不对数据面造成任何性能影响。同时,同一个事务在同一个数据进程处理,避免多核无锁操作。
数据面与管理面分离
保证数据在转发过程中不被其他管理任务干扰
控制面和数据面分离,控制面负责配置下发和其它控制流程,控制面阻塞不影响数据面转发数据。数据面只做数据的转发处理,不做任何耗时的动作,甚至系统调用都避免使用,保证数据低延迟转发。
DMA技术+数据高性能改造
信创AD实现数据转发“全栈零拷贝”
Linux系统中,内存拷贝是比较耗时的操作,采用零拷贝技术则是常用的优化手段。不少厂商会直接采用成熟的DMA(Direct Memory Access)技术来实现设备各组件之间的拷贝,如硬件网卡到内存之间的拷贝,但是DMA仅适用于不同硬件之间交换数据时进行数据拷贝,而设备内部的数据拷贝则必须依赖CPU进行。例如,内核层与用户层数据之间的拷贝(内存内部的拷贝)依旧需要由CPU来负责。
为了保证在信创环境下性能不折损,信创AD通过DMA技术+数据高性能改造的方式,实现内存到其他硬件组件之间的数据零拷贝,还通过数据改造的形式实现了各协议层之间的数据零拷贝。全栈零拷贝,最大程度释放CPU压力。
DMA技术
实现其他组件与内存之间的零拷贝
硬件网卡接收到数据包后,DMA技术可实现网卡硬件到内存之间的数据拷贝。通过DMA控制器取代CPU完成硬件网卡到内存之间的数据拷贝,这个过程中,CPU只起到管理作用,无需耗费资源处理拷贝动作。
数据高性能改造
实现各层协议内存之间的零拷贝
网卡硬件NIC通过DMA技术上送到应用层驱动、路由框架、TCP协议栈、SSL协议栈、HTTP协议栈,通过数据性能改造的方式一直复用,保证数据协议处理过程中不使用任何拷贝。
在高性能加持之下,信创AD还保持着成熟的稳定性,全自研应用层网络协议栈+DPDK技术、丰富的自研应用层调试接口及工具、自研混沌测试平台D-TaaS,保证高并发、大吞吐等复杂场景下核心业务的稳定运行。
而在过硬的技术实力之上,AD积极推进信创生态的建设,现已完成与银河麒麟、中标麒麟、兆芯、飞腾、海光、华胜信泰、东方通、中创等国内主流操作系统、CPU、中间件的广泛兼容适配。
截至目前,深信服信创AD已经服务超220+用户,包含95家金融、109家政府、20余家大型企业,具备丰富的实践经验。在自主创新的道路上,信创AD始终坚持对核心技术能力的升级、拥抱多元的信创生态。在优化性能的同时,通过技术创新持续提升产品软硬件可靠性,为用户打造在信创环境下更全面、立体化的应用交付解决方案。