架構演進推升應用交付性能
時光荏苒,應用交付(ADC)產品已問世十余載,其系統架構也隨著技術變革多次更新換代。追溯最早的架構之爭應屬于Foundry、Alteon、Arrowpoint時代,三家公司均采用了交換機架構。雖然內部處理技術有所不同,但其關鍵在于ADC產品如何提升4-7層處理性能。之后,以F5為代表的PC架構和上述三家交換機架構兩個陣營保持了較長階段的對峙。其間,Netscaler(Citrix)加入了PC架構陣營,Radware加入了交換機陣營。從表面上看,似乎交換機陣營處于優勢。實際上,使用Unix或Linux的PC陣營更加靈活多變。***還是用戶需求起了決定作用,PC陣營盡管在性能方面處于劣勢,但憑借應用靈活性卻占了上風。
ADC“核”變
隨著多核CPU大勢的到來,ADC產品架構也發生了劇烈的“核”變——目前絕大部分ADC產品都逐步采用了多核多CPU架構。由于CPU資源充足,交換路由無論在硬件還是軟件處理上都已不是問題。如何充分發揮硬件架構的性能,軟件操作系統的選擇變得至關重要。最核心之處就是多CPU之間是否存在IPC(處理器間通信),即采用獨享內存還是共享內存。
所謂獨享內存,是指每個處理器有專用的內存并對之進行控制,獨自處理內存上的數據,然后通過處理器間通信(IPC)機制來交換共享數據。
這顯然會帶來以下弊端:
- 產生CPU資源額外消耗,且核數量越多IPC開銷越大,通訊間隔越短開銷越大。
- 內存使用效率低,每個核需2-4G內存,以致動輒就要用上16G甚至32G內存資源。
- 數據準確性。對于連接限制、連接速率限制、最少連接策略等特性,IPC帶來的誤差可能導致策略完全失效。
- 性能降級,對于一些涉及全局變量和哈希會話保持表的應用,不得不降級為單核處理(1/8性能乃至更低)。
共享內存,則是指所有處理器都可以訪問相同的內存,并可以不考慮物理位置直接訪問內存。由于任意 CPU 都可以直接訪問所有內存,而不需要進行IPC,且消除了內存復制,就不會造成額外相關消耗而影響性能。
從上面的對比不難看出,共享內存架構只需要保留一份數據,沒有數據一致性和IPC的問題,顯然是***方案。但在實際應用中很多ADC廠商依然沒有采用共享內存。這是因為共享內存***的技術難點在于如何解決CPU間鎖的問題。
ACOS — 高效的多核架構
A10 Networks早在2007年已攻破了這一技術難關,實現“零鎖定”,推出了ACOS高級核心操作系統。ACOS采用多核多CPU+共享內存的架構,對“高速共享內存架構(SMA)”和“靈活的流量加速器(FTA)”兩大創新技術進行整合,并利用平行處理超級計算技術,***限度地發揮了多核并行處理構架的效用,避免了傳統設計中產生的消耗。這不僅消除了傳統設計帶來的瓶頸,而且滿足了隨多核CPU架構增加呈現的線性性能擴展的需求。當面臨多應用的大流量訪問時,設備可以保持各個CPU占用率非常均衡,且每臺服務器的并發連接數也非常均衡。
正是憑借ACOS,A10 Networks在1U空間的機箱內不斷刷新著自己的性能記錄,實現了高達160Gbps吞吐量及高達2.56億的并發連接數。在云數據中心高密度的大趨勢下,單位空間單位功耗下***化性能是用戶實實在在的需求。以同等的硬件實現更高的性能和效率,讓客戶從他們的資本投資中收獲更多價值,這正是ACOS的優勢所在。
不難看出,隨著技術的快速演進,市場需求的選擇,ADC廠商將面臨更多的挑戰。他們不僅要應對越來越高的性能要求,還要讓方案保持足夠的靈活性,順勢而行,適應多核時代的挑戰,才能從容面對“核”變的強烈沖擊。