伴随基础架构的发展,商用成品服务器(Commercial Off-The-Shelf ,COTS)中的CPU正在花费越来越多的时间用于非业务负载,越来越大的网络速率意味着CPU需要花费更多的开销在网络处理方面。全面SSL加密部署需要更多的CPU算力用于加解密。SDN的发展需要CPU处理越来越多的数据封装与解封装。云原生的发展进一步加剧了代理类中间件对CPU的消耗。
网络接口从2010年的1GbE到2012年的10GbE普及,从2016的40GbE到如今的100GbE的广泛应用,数据中心网络流量正在不断增大。这需要更多的CPU资源来处理这些网络数据。需要CPU进行处理的非直接业务类数据正变得越来越多。分布式和微服务架构在带来了架构弹性的同时,也带来了巨大的东西流量。在云原生场景下,这些流量都需花费大量CPU算力,例如IP tables处理,OVS封装与解封装,TLS加解密,网络规则处理与安全防御等。
有研究显示,在8000个Linux iptables规则下,处理由64B数据包大小组成的40Gbps流量,需要大约480个CPU 核。即便在1500B数据包大小下,也需要21个CPU 核 。
在应用场景层面,区块链散列计算、大数据处理、视频转码、低延迟交易、内容感知处理等,也同样加剧了商用成品服务器中CPU在非业务逻辑层面的算力消耗。
COTS
2016年以来,企业开始广泛部署软件化类应用交付产品。软件型应用交付产品切合了企业弹性与灵活部署、降低TCO的诉求。而5G与IoT、视频直播、To C类移动应用的大力发展带来了高密度连接和TLS计算。分布式与云原生技术也让东西向流量路径变的更长,服务与服务之间更加依赖反向代理类软件提供更加可靠和优化的通讯能力,以此提升应用体验。这都要求软件型应用交付产品能够提供更高的性能。众所周知,应用交付类产品能力介于应用负载与网络之间,是典型的CPU密集型处理。这一切,都需要消耗大量商用成品服务器(COTS)中的CPU资源。
如何将更多的CPU资源留给业务逻辑?
软硬协同,是加速性能处理,节约COTS CPU资源的解决之道。软硬协同本身并不是新的概念。我们熟悉的专有硬件设备,其本身就是软硬协同的典型代表。例如F5的硬件设备之所以具备如此高的性能,就是F5的软件能够充分利用F5自行设计的专有硬件。F5从早期的3900设备开始便装载了FPGA芯片。实现了类如HSB、DAG等诸多能力设计。在模式上包含了诸如TCP/IP优化、资源隔离、L4加速、CGNAT、DDOS防护、DNS加速、带宽管理、接口虚拟化、高速传输链路训练、DMA等10余种硬件加速场景。在最新的r系列与VELOS硬件中则搭载了更多更强的FPGA芯片来进一步提升硬件加速的能力。在我们的日常生活中,苹果手机、智能汽车等也都是典型的软硬协同代表。小鹏汽车总裁何小鹏曾在小鹏科技日活动上表示,智能汽车厂家之间的实力竞争不是简单的硬件堆叠与软件开发的竞争,而是如何更好的让软件与硬件协同。
使用硬件卸载COTS CPU工作负载,在公有云领域中比较常见。因为在大量依赖算力的公有云提供商中,减少CPU在网络、TLS等层面的开销,意味着可以销售更多的CPU资源给付费用户,实现更大的经济收益。在全栈云,云原生应用开发思想大量践行的今天,企业数据中心也有着同样的诉求。节约COTS CPU资源意味着可以购买更少的服务器,减少电力、制冷能耗,节约宝贵的机房空间。节约COTS CPU意味着CPU资源可以用于更多的业务处理,支撑更多的业务发展,实现更大的投资回报。
在边缘计算场景中,CPU资源更为宝贵,利用软硬协同可以获得更高的性价比。也可进一步提升边缘连接处理的稳定性,降低网络延迟。
正如前文所述,应用交付是典型的CPU密集型计算。那么,在软件应用交付方面,同样可以借助硬件实现更高性能的应用交付,节省更多的CPU资源。一般来说在提高性能、节约CPU方面,我们可以考虑如下技术措施:
- 采用 DPDK 作为加速手段,提高网络处理性能。DPDK技术可以让用户空间程序直接操作网络接口卡的内存空间,极大的减少了数据在用户空间与内核空间的拷贝,提升了数据处理效率。虽然DPDK技术还无法节约更多的CPU,但在提升网络效能上还是具备明显效益。
- 采用eBPF技术。eBPF内核技术可以在网络安全,网络可观测性,提升网络效能等方面提供诸多能力。但eBPF需要较新版本的操作系统内核支持,使用门槛也较高。这会在一定程度上阻碍技术的应用。从CPU节约角度,与DPDK类似。
- 采用支持SR-IOV技术的网卡,实现虚拟化场景下虚机直接使用网卡。通过将PF映射为多个可由虚机直接使用的VF,实现网络性能的提升。节约CPU在虚拟化层面对网络的处理开销。
- 采用智能网卡(SmartNIC)。通过软件对智能网卡的支持,实现更多CPU资源的节约。例如DDOS防御,DNS加速,报文拆解,数据流处理,负载均衡,存储加速,OVS卸载,加解密计算,数据分析,数据去重,监控与可视化,有状态ACL处理等。智能网卡根据其实现技术的不同,一般可以分为基于ASIC的智能网卡,基于FPGA的智能网卡,基于System on Chip(SoC)的智能网卡。SoC网卡一般来说具有容易编程及高度可扩展能力,是一种更具普适意义的数据处理单元(DPU)。
- 采用专用SSL加速卡。借助类如OpenSSL中的ENGINE实现对硬件SSL卡的使用。但这一般来说需要仔细的配置与测试SSL库对硬件的支持。
F5 Virtual Edition软件应用交付产品(F5 BIG-IP软件版),支持利用这些技术实现在节约COTS CPU的同时,提供更高性能的应用交付处理能力,更好的提升用户体验。主要表现在:
- 使用SR-IOV与DPDK技术实现非智能网卡下的高性能网络处理。通过与硬件适配的驱动优化,极大的提升了VE的网络处理性能。F5 VE当前支持Intel,Emulex,Broadcom,Mellanox等品牌网卡,或Azure,AWS等云网络适配器。可提供从20G到100G不等的高性能吞吐。
- 借助Intel QuickAssist Technology(QAT卡)实现高性能TLS处理。相比未使用QAT卡,可获得高达5倍的SSL TPS和吞吐处理(基于不同的数据报文大小)。
- 借助SmartNIC上的FPGA,实现在智能网卡层面进行加速的能力场景。在L4流量加速方面,在仅用5%无智能卡时的CPU算力,却实现了相比无智能卡时30%的L4吞吐提升。收益相当可观。同时,为了降低FPGA的使用复杂度以及获得更顺畅的能力迭代,F5提供了可视化的FPGA配置器帮助用户更加容易的实现FPGA能力配置与升级。
如今,企业正在大量部署软件型应用交付产品。硬件L4+软件L7架构模型也在向软件L4+软件L7模型演进。无论是位于企业云边界的高性能应用交付控制器,还是位于Kubernetes边界的Ingress Controller,亦或是位于边缘节点的反向代理,都正在面临节约服务器CPU开销,并提高性能,降低延迟的需求。当前,F5 VE软件应用交付控制器可以提供20G-100G不等的吞吐性能,可以满足大部分场景的硬件替代。而配合硬件加速则可以在此基础上进一步提升性能,降低COTS CPU资源消耗,满足更多高性能场景的硬件替代,降低全球芯片产能不足对带来的影响。
文章评论