Napatech 縮圖

IPU 改善微服務型應用程式的網路延遲

Intel 基礎架構處理器 (IPU) 利用 Napatech 的虛擬化數據平面軟體,為基於微服務的雲端應用程式實現突破性的延遲和輸送量。

摘要

  • 微服務型軟體架構 部署者 雲端服務供應商提供的重要優勢如下: 加速部署、簡化調試和改進 可伸縮性。但是,它們引入了重要的網路 開銷,以便網路延遲等參數具有 對整體應用程式性能的重大影響和 數據中心成本。

  • 利用Intel FPGA執行虛擬化數據平面的 IPU Napatech 的軟體,服務供應商可以最大化 其網路基礎架構的效能,使 否則無法實現的性能水準 最小化其整體數據中心資本支出和運營支出。

  • 麻省理工學院進行的一項分析表明,在兩個典型的 此 IPU 解決方案以微服務為基礎的使用案例,可實現 與系統相比,系統輸送量提高50% 基於標準網路配接器的配置 (NIC)。這使服務提供者能夠減少數量 支援這些專案總工作負載所需的伺服器數量 使用案例減少約三分之一,大幅推動 降低伺服器資本支出、運營支出和能源效率。

查理·阿什頓

業務開發資深總監,Napatech

裡奇·豪威爾

產品行銷經理,Intel

什麼是微服務?

微服務是指一種現代軟體開發方法,該方法涉及將大型應用程式分解為較小、獨立、鬆散耦合的服務。雲服務提供者,包括亞馬遜、eBay、Netflix 和 Twitter 等知名公司,越來越多地將其應用程式實現為微服務,而不是傳統的單體設計,而不是將應用程式實現為傳統的單體軟體系統。

微服務的一些好處包括:

  • 可伸縮性:微服務允許更好的可伸縮性,因為單個服務可以彼此獨立地縮放。這意味著開發人員可以僅擴展或縮減需要它的服務,而不會影響應用程式的其餘部分。

  • 靈活性: 微服務可以更輕鬆地對系統進行更改,因為可以在不影響整個應用程式的情況下更新單個服務。這使得採用新技術、試驗不同的程式設計語言和測試新功能變得更加容易。

  • 故障隔離: 由於每個微服務都是一個獨立的元件,因此如果一個服務失敗,它不會影響應用程式的其餘部分。這意味著開發人員可以在不影響整個系統的情況下快速識別並解決問題。

  • 提高開發速度: 微服務使規模更小、更專注的開發團隊能夠獨立處理特定服務。這加快了開發過程,並使管理大型複雜系統變得更加容易。

  • 更好的容錯能力: 使用微服務,可以更輕鬆地構建容錯系統,因為每個服務都可以設計為獨立處理錯誤。這意味著整個系統的彈性更強,發生故障的可能性更小。

  • 改進的測試: 由於每個微服務都是獨立的,因此可以更輕鬆地測試單個服務。這意味著開發人員可以隔離測試服務,從而更容易查找和修復錯誤。

雖然基於微服務的軟體架構提供了重要的好處,但它們帶來了巨大的網路開銷,因此網路延遲等參數對整體應用程式性能和數據中心成本有重大影響。通過利用運行 Napatech 虛擬化數據平面軟體的Intel FPGA基礎設施處理器 (IPU),服務提供者可以最大限度地提高其網路基礎設施的性能,實現原本無法實現的性能水準,同時最大限度地減少其整體數據中心資本支出和運營支出。

微服務的網路挑戰

在微服務架構中,網路延遲是一項重大挑戰,因為容器中實現的虛擬化服務或虛擬機 (VM) 通過虛擬網路相互通信。例如,微服務之間頻繁通信,這可能會導致大量網路流量。這種增加的網路流量可能會導致網路擁塞和延遲增加,從而可能對系統性能產生負面影響。同樣,在微服務架構中,服務通常需要調用其他服務才能完成任務,並且每次網路調用都會給系統增加額外的延遲。隨著服務數量和系統複雜性的增加,網路呼叫的數量也會增加,這可能會導致嚴重的延遲挑戰。最後,不同的微服務可能使用不同的網路協議進行通信。例如,一個服務可能使用 REST(RErepresentational State Transfer),而另一個服務可能使用 gRPC(Google 遠端過程調用)。在不同的網路協定之間進行轉換可能會給系統增加額外的延遲。

傳統上,虛擬化數據平面完全在軟體中實現,其許多計算週期都通過運行虛擬交換機 (vSwitch) 來消耗,該交換機在 VM 之間路由網路流量。由於每個 vSwitch作都需要大量 CPU 週期,因此此架構可能會給系統帶來不可接受的延遲,還可能阻礙系統實現所需的整體性能或輸送量。同時,在執行虛擬數據平面時使用的CPU將減少可用於執行應用程式和服務的核心,從而增加支持資料中心工作負載所需的伺服器數量,並增加CAPEX和OPEX。請見圖 1。

乙太網路適配器上的軟體虛擬交換機
圖 1.多個虛擬機與配置了標準乙太網適配器的伺服器上運行的軟體虛擬交換機互連

利用基於Intel® FPGA IPU的架構

效率更高、成本效益更高的系統級架構利用Intel FPGA IPU從伺服器 CPU 卸除 vSwitch,釋放伺服器 CPU 以執行應用程式和服務。

IPU 取代了數據中心伺服器中的標準網路適配器 (NIC),在硬體中執行 vSwitch,使用可程式化FPGA(現場可程式化網關數位)來運行數據平面,並結合運行控制平面的通用 CPU。vSwitch 為 VM 提供業界標準的 API(應用程式程式設計介面),確保在利用此架構時無需對 VM 本身進行任何更改。請見圖 2。

基於 IPU 架構為執行基於微服務的應用程式的資料中心提供了三個主要優勢:

  • 超低延遲,最小化微服務之間的延遲流量;

  • 高性能,最大限度地提高系統和應用程式的整體輸送量;

  • 最佳伺服器 CPU 利用率,vSwitch 數據平面不消耗伺服器 CPU 核心,最大限度地減少整體工作負載所需的伺服器總數,同時最小化數據中心的資本支出和運營支出。

IPU 卸除虛擬交換器
圖 2。高性能系統架構,其中多個虛擬機與在 IPU 上運行的卸載虛擬交換機互連

麻省理工學院分析

為了量化 vSwitch 卸除在實際情境中的優勢,麻省理工學院 (MIT) 分析了兩個基於微服務的用例的效能,比較了使用傳統軟體型 vSwitch 和使用 Napatech (一家領先的 SmartNIC 和 IPU 解決方案供應商)執行虛擬化數據平面軟體Intel IPU所獲得的結果。這兩個用例是發佈-訂閱「發佈-訂閱」應用程式,該應用程式使用消息傳遞進行跨多個層的數據傳輸,以及三層 TCP 應用程式,包括 Web 伺服器、記憶體中快取和後端資料庫。這項基準測試計劃的結果記錄在 麻省理工學院發表的 論文“運行 Napatech 軟體的 Intel IPU 上的微服務基準測試”

發佈-訂閱應用程式性能分析

發佈-訂閱應用程式是“發佈-訂閱應用程式”的縮寫,是分散式系統中常用的一種消息傳遞模式,用於促進不同元件或服務之間的通信和協調。發佈-訂閱模式允許異步和解耦通信,其中消息的發送者(稱為發行者)不需要知道特定的收件者(稱為訂閱者)。發佈-訂閱應用程式適用於以下用例:

  • 座位預訂系統 ,用於創建平面圖,為其分配座位,然後管理即時座位預訂事件。當客戶購買門票時,發佈-訂閱系統會在任何地方即時更新平面圖,並保持分散式緩存系統同步。客戶永遠不會最終要求座位,卻發現有人在他們還在流覽/購物階段購買了座位。

  • 一種教育工具 ,允許學生通過基於 Web 的應用程式參與課堂,客戶經常會遇到諸如不穩定的 WiFi 或不可預測的蜂窩網路等問題。發佈-訂閱系統在他們重新加入網路時恢復其連接,並能夠處理在線參與者數量的快速變化。

  • 金融應用程式 ,例如向組織內的訂閱者分發市場數據,包括股票價格、市場指數、交易數據和訂單簿更新。

  • 物聯網 (IoT) 系統,其中發佈-訂閱促進眾多物聯網設備之間的通信,並實現高效的數據傳播。感測器發佈數據,然後訂閱者可以即時接收和處理這些數據。

對於此分析,MIT 評估了使用 Dapr 的發佈-訂閱通信模型開發的五層鏈拓撲 ,該模型是一種可移植的事件驅動運行時,使開發人員能夠構建在雲和邊緣上運行的彈性、無狀態和有狀態的應用程式,同時支援多種語言和開發人員框架。每一層在使用者指定的時間內執行 CPU 密集型計算,然後再將其輸出廣播到下游層。請見圖 3

在五層發佈-訂閱應用程式中,跨兩個啟用 OVS 的伺服器放置服務可確保依賴服務在不同的物理機上運行,以便層之間的所有流量在啟用時通過 IPU。

IPU 卸除發佈子應用程式
圖 3.IPU 卸除的 5 層發佈-訂閱應用程式中的流量

麻省理工學院分析了使用和不使用基於 IPU 的卸載的發佈-訂閱系統的性能,測量了不同負載下的消息傳遞延遲,這些負載表示為每秒數千次查詢 (kQPS)。請參見圖 4

5 層 pub sub dapr 應用程式延遲與負載
圖 4.透過 5 層發布-訂閱應用程式的 IPU 卸除,改善延遲和輸送量

當卸載被禁用並考慮尾部(即最壞情況)延遲時,應用程式開始以 90kQPS 的速度飽和,如圖中的拐點所示。超過該負載級別,系統無法再有效地跟上請求,這很可能是由於數據包丟棄導致 TCP 重新傳輸。但是,當啟用卸載時,系統仍能以 140kQPS 的負載(此測試中使用的最大速率)跟上請求,這表明 IPU 可實現輸送量增加 50%,同時保持可接受的尾延遲。這代表了系統容量的顯著提高,從而節省了 30-40% 的總伺服器成本和能耗。

三層 TCP 應用程式效能分析

三層TCP(傳輸控制協定)應用程式是指將應用程式劃分為三個邏輯層或層的軟體體系結構設計,每個邏輯層或層負責特定功能。這些層通常稱為表示層、應用程式層和數據層。TCP 協定用於這些層之間的通信:

  • 表示層: 也稱為使用者介面 (UI) 層,此層負責向用戶呈現應用程式的資訊並接收其輸入。它處理圖形使用者介面 (GUI) 元件,例如網頁、表單或桌面介面。表示層與應用程式層通信,以根據需要檢索或更新數據。

  • 應用層: 應用層包含應用程式的業務邏輯和處理邏輯。它處理核心功能並執行數據驗證、業務規則實施和特定於應用程式的作等任務。此層處理來自表示層的請求,並與數據層通信以檢索或存儲數據。

  • 數據層: 數據層(也稱為數據訪問層或資料庫層)負責管理數據的存儲和檢索。它處理與資料庫系統的交互,例如查詢和更新數據。數據層接收來自應用層的請求,並返回請求的數據或執行必要的數據修改。

在三層 TCP 應用程式中,使用 TCP 協定促進這些層之間的通信。TCP確保層之間可靠有序地傳遞數據,提供面向連接和基於流的通信機制。通過將應用程式分成這三層,三層 TCP 體系結構允許模組化、可伸縮性和更易於維護的應用程式。每一層都可以獨立開發和擴展,從而促進元件的靈活性和可重用性。

對於此分析,麻省理工學院評估了一個三層應用程式 , 其中NGINX 作為前端Web伺服器, Memcached 作為記憶體緩存層 , MongoDB 作為具有持久存儲的後端資料庫。用戶端與NGINX交互,NGINX檢查鍵值對是否緩存在Memcached中,如果是,則將值返回給用戶端。如果沒有,NGINX與MongoDB介面以獲取輸出並將其另外緩存在Memcached中。請見圖 5

IPU 卸除 3 層 TCP 應用程式
圖 5.IPU 卸除的 3 層 TCP 應用程式中的流量

MIT 分析了使用和不使用基於 IPU 的卸載的三層 TCP 應用程式的性能,測量了不同負載下的消息傳遞延遲,如前面的示例所示,這些負載表示為每秒數千次查詢 (kQPS)。請見圖 6

IPU 卸除時的延遲與輸送量
圖 6.透過 3 層 TCP 應用程式的 IPU 卸除,改善延遲和輸送量

當禁用卸載並考慮尾部(即最壞情況)延遲時,應用程式開始以大約 17kQPS 的速度飽和,如圖中的拐點所示。超過該負載級別,系統無法再有效地跟上請求,這很可能是由於數據包丟棄導致 TCP 重新傳輸。但是,當啟用卸載時,直到負載為 26kQPS 才會開始飽和,這表明 IPU 可實現輸送量增加 53%,同時保持可接受的尾延遲。與前面的示例一樣,這代表了系統容量的顯著改進,從而節省了 30-40% 的總伺服器成本和能耗。

系統組態

MIT 用於微服務基準測試的系統配置如下:

  • 兩台浪潮雙插槽伺服器,每一台配備 Intel® Xeon® Gold 6338 處理器和 48MB 高速緩存,以 2.0 GHz 和 3.2 GHz 渦輪速度運行。每台伺服器都配置了 512GB 記憶體、一個 480GB 啟動驅動器、兩個 1.6TB P6410 NVMe 儲存模組和一個 10G Intel® 乙太網路控制器 XL710 NIC。
  • 除標準 NIC 外,每台伺服器均配置了一個 Intel IPU C5000X 適配卡,該適配卡具有雙 10/25G SFP28 埠和一個 PCIe 3.0 主機介面,以 Intel® Stratix® FPGA 和 Intel® Xeon® D 系統單晶片 (SoC) 為基礎。請見圖 7
  • 每個IPU都運行Napatech的鏈路虛擬化4.3.3軟體,提供了一個卸載和加速的虛擬化數據平面,包括Open vSwitch(OVS)、VirtIO支援、實時遷移、虛擬機到虛擬機鏡像、VLAN/VxLAN封裝/解封裝、Q-in-Q、RSS負載平衡、鏈路聚合和服務品質(QoS)等功能。

Intel IPU C5000X 適配器
圖 7.Intel IPU C5000X 適配卡,具有雙 10/25G SFP28 連接埠和 PCIe 3.0 主機介面,基於 Intel® Stratix® FPGA 和 Intel® Xeon® D 片上系統(SoC)