说起应用交付的硬件架构,CPU是其中最主要的一环。那么,应用交付设备的CPU该如何选择?对此,研发出***性能应用交付产品的太一星晨有着自己的专业见解。
太一星晨研发总监冯晓杰指出,要选择最适合应用交付产品的CPU,首先得对CPU的类型有所了解。
常见的网络设备CPU分为两种类型:
1、基于CISC(即复杂指令集)。典型代表是intel的x86处理器、AMD公司。
该处理器的主要特点是:CPU的主频高,计算能力强,但是功耗也高,此架构有利于复杂图形数据处理和各种数据处理。
2、RISC(精简指令集)处理器。典型代表是Cavium、RMI、ARM等。
该处理器即我们日常所说的网络处理器。它基于精简指令集,针对网络场景的数据处理有专门的优化,运算能力一般,但转发能力强。
基于上述两种类型的CPU,业内在选择网络设备之时,通常会做出如下两种选择:
1、关注于应用的产品。由于应用的种类非常多,没有固定格式,例如网络安全产品中的IPS,由于其中要进行大量的特征比对,通常倾向于选用适合密集计算的通用指令集的x86 CPU。
2、关注于网络转发性能的产品。例如路由器、防火墙等,网络数据包有固定的格式,通常采用网络处理器,例如Cavium或RMI。采用这类处理器的网络设备,拥有转发能力强、功耗低等特点,但是通常来说采用网络处理器的设备,在处理大量的浮点计算的场景时,性能会比较低;但是,作为一些简单的网络处理场景,它的性能非常高。
落地到应用交付场景中,该如何选择CPU呢?
首先还需要更正一个认识误区:在一些人眼中,应用交付属于数通产品和通讯产品——这其实非常错误!
简单来说,一般的通讯产品只对网络层或传输层协议进行分析、处理和转发(这也是传统负载均衡产品的概念),而应用交付产品就是要对三层和三层以上的数据及内容进行分析、处理和转发。传统通讯产品处理数据包,一般只会处理三层以内的信息,对数据包进行转发,而管理层只是对少量协议报文进行处理。
由此可知,传统的通讯设备往往用专用硬件(交换芯片、FPGA等)来处理转发,能达到千兆线速、万兆线速的性能,但对CPU处理能力特别是运算能力要求不是很高。
应用层产品因为要对应用层数据包进行处理,数据包需要经过大量分析和处理之后才能进行转发。因此对CPU的处理能力,特别是复杂运算能力要求非常高——这就意味着应用交付产品需要选择x86架构。
所以常常可以看到,国外主流厂商在应用交付产品中一直都是选用x86处理器。
不过,在过去x86处理器被人诟病的是PCI总线瓶颈以及IO冲突,导致设备转发性能上不去,比如F5过去的1600、3600的吞吐性能也只有1G、2G。
那么如何做到密集运算和网络吞吐性能兼顾呢?
国外品牌常见的一种模式就是采用x86+ASIC的架构。在这种模式下,简单的四层处理的内容,通过ASIC芯片或FPGA完成,而复杂的应用层内容,依然由CPU完成,即兼顾了网络处理,又兼顾了通用运算。
作为国内的后起之秀,太一星晨选择intel***的SandBridge/ivybridge处理器,采用环形总线布置有效的规避了旧x86平台的总线瓶颈,在公安部三所的测试表明,T-Force8000系列***性能达到80G吞吐足以媲美国外品牌,采用交换架构的V系列更是达到了T级别吞吐,成为目前业内***性能的应用交付。