隨著繞過內核的基于應用加速網絡解決方案的出現,數據中心運營商有機會將25%到50%的服務器納入其云計算數據中心建設中。
如今,數據中心運營商面臨著不斷增長的需求,即提供先進的電子商務購物體驗,增強視頻流,以及通常更好的服務,同時也面臨著降低或控制成本的壓力。
當典型數據中心的內部非創收網絡任務消耗多達其服務器總容量的25%時,這是不可能實現的。隨著服務器和網絡速度的提高,這個問題只會惡化,這使得當今可用服務器容量的一半無法用于提供創收服務的主要任務。
此問題的解決方案是應用程序加速技術,該技術在用戶空間而非內核空間中運行,以減少數據中心最密集的內部傳輸控制協議(TCP)應用程序的延遲,并提高事務處理速率。
這個概念既適用于物理服務器,也適用于虛擬化環境,并準備從當今的私有云和公共云基礎設施投資中消除數十億美元的成本浪費。同時,該技術降低了總體擁有成本(TCO),提高了峰值應用程序事務速率,以消除服務中斷,并通過更高響應時間減少網絡抖動,從而實現了卓越的服務質量(QoS)。
基于內核的網絡效率低下
企業數據中心、私有云和公共云效率低下的最大原因之一是基于內核的網絡。如果數據中心的大多數網絡密集型應用程序可以移出內核并在用戶空間中加速,則可以更高效地執行這些應用程序,而不會使服務器負擔所有相關的CPU中斷、場景切換,以及大量內存副本。
這種內核旁路概念已經過行業標準POSIX套接字的驗證,并部署在運行Linux的基于x86的裸機、虛擬機或容器平臺上。利用該概念的解決方案可以設計為使其保持與現有應用程序、管理工具和網絡基礎設施的兼容性,并且不需要對應用程序進行任何重寫或重新編譯,也不要求任何新協議在線路上運行。
這與遠程DMA加速協議形成對比,如RDMA over Converged Ethernet(RoCE),它需要線路兩端的特殊硬件或互聯網廣域RDMA(iWARP),這需要嵌入在以太網NIC ASIC中的TCP堆棧處理。與這些RDMA解決方案不同,線路一端的Cloud Onload應用程序加速可與線路另一端的任何TCP設備互操作,因為它是一種軟件解決方案,并且無需更改應用程序軟件本身,因此可以輕松調整。
可以在運行時選擇應用程序是在用戶空間還是標準Linux內核堆棧中運行。結果是類似RDMA的性能加速,無需升級數據中心現有的網絡基礎設施。
用戶空間中的應用程序加速也為虛擬化環境帶來了巨大的好處。為VM PCIe直通配置的虛擬機管理程序為虛擬化Linux客戶機提供了與裸機Linux內核網絡接近的性能。在虛擬化應用程序中的虛擬化Linux客戶機中使用時,它可以提供與將Linux內核旁路添加到虛擬機管理程序旁路相同的加速優勢,并將I/O延遲降低到2微秒或更短的時間。
圖1 Solarflare的Cloud Onload內核旁路應用程序加速解決方案用于基準測試,與內核驅動程序相比,Redis SET事務提供了88%的改進,有12個實例。該解決方案在100GbE網絡上實現了2800萬個SET事務。
改進的例子
Redis內存數據庫(IMDB)是一個應用程序的主要示例,其性能可以通過內核旁路方法顯著加速。與所有IMDB一樣,Redis性能受到網絡I/O性能的嚴重影響。每當Redis實例使用服務器硬件存儲或I/O資源時,它必須首先調用該資源的驅動程序。對于基于內核的驅動程序(構成所有I/O驅動程序的大部分),應用程序必須對操作系統內核進行一次或多次調用才能調用驅動程序。這些調用中的每一個都導致場景切換,在此期間應用程序的存儲空間被放入系統存儲器中。這些場景切換消耗大量系統資源,減少了Redis可用的處理時間。
圖1和圖2顯示了Redis集的基準測試結果,并針對在典型的雙處理器Linux服務器上運行的Redis實例獲取事務。所有測試都在相同的網絡適配器上以10GbE、25GbE和100GbE的速度運行,Redis實例介于1到22個。一組測試是使用標準的Redis以太網棧進行的,而第二組測試使用了內核旁路方法的應用程序加速。
圖2 使用內核旁路方法也顯著加速了Redis GET事務。Cloud Onload在具有12個Redis實例的25GbE網絡上提供了近100%的性能提升,并在100GbE網絡上實現了3800萬GET事務
正如這些結果所示,通過應用加速解決方案繞過內核,Redis可以在10GbE和25GbE網絡上完全“填充線路”,這是內核驅動程序在25GbE網絡上無法實現的。在100GbE速度下,內核旁路解決方案使Redis的性能比使用標準Redis內核驅動程序高66%。
這帶來了三個好處:(1)使用現有服務器的收入增加了66%;(2)通過使用更少的服務器將資本支出(CapEx)和可能的運營支出(OpEx)削減60%以上的能力;(3)在高峰時段保持高達100%的負荷。
除了Redis之外,內核旁路技術還可以加速應用程序,包括軟件負載平衡器(NGINX、HA Proxy、Envoy),Web服務器(NGINX、Apache),應用程序框架(Node.js、netty.io),其他數據庫服務器,如Couchbase和Memcached,像Kafka和Zookeeper這樣的消息代理,以及存儲應用程序。正確實施后,內核旁路技術可將整體服務器性能提高2~10倍,同時提供最低延遲抖動,并保持極低的CPU利用率。
隨著基于應用程序加速網絡的解決方案繞過內核的出現,數據中心運營商將有機會減少25%到50%的云計算數據中心數據量。
對于同時需要10萬臺服務器的典型部署,這相當于每年節省大約1億美元的資本支出和2500萬美元的運營成本,該技術將通過降低總體擁有成本(TCO),同時顯著提高投資回報率(ROI),顯著改善整體數據中心運營,并且通過提高服務質量,同時在高峰申請交易期間消除電力中斷的風險。