應用交付的CPU該如何選擇?
說起應用交付的硬件架構,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級別吞吐,成為目前業內***性能的應用交付。