新一波潮流來襲:網絡與計算之融合

從計算機誕生伊始,“計算”這個詞彙便隨着時代的變遷不斷豐富着自己的內涵,IT從業者爲了提高計算效率也給“計算”賦予了更多載體,高性能計算、雲計算、量子計算都在通過各個領域爲計算賦能。時代發展離不開網絡,本文要討論的話題就是——網絡如何與計算融合。

爲什麼要關心計算和網絡的融合?

計算與網絡一直密不可分,網絡與計算的高效融合也成爲了未來計算髮展的趨勢。我們也可以看到與計算機相關的硬件和軟件(如運行虛擬機的通用CPU、傳統操作系統和編程語言)越來越多地被用於各類網絡功能。諸如交換機,路由器和NIC之類的網絡設備也正在變得可編程,以允許在網絡中完成各類通用計算。

在以數據中心爲代表的高密度計算集羣中,應用呈多元化和分佈化,更大的網絡帶寬也帶來了海量數據,對I/O處理的計算需求也不斷飆升,新型的網絡功能虛擬化也在進一步蠶食CPU的算力,同時GPU的負載轉移工作也是杯水車薪。

網絡帶寬遠遠超過計算能力

目前,服務器網絡帶寬正面臨快速增長。200Gbps以太網網卡已經成爲主流,廠商還在不斷研發新的400Gbps NIC,而1Tbps很快將成爲下一個目標。另一方面,處理網絡I/O的計算容量空間正在不斷縮小。例如,對於典型的使用32字節鍵值的鍵值存儲,爲了在100 X86 CPU內核的情況下保持400Gb/s的線速,一個內核大約需要500個週期來處理每個鍵值對。即使在這種理想的假設下,這種微不足道的計算能力也僅僅能夠在網絡堆棧中執行一些LLC或內存訪問,留給應用程序邏輯的東西少得可憐。換句話說,未來具有線速I/O處理需求的應用程序註定要受到CPU和內存的限制。

多年來,各種底層網絡層功能已經被應用到了網卡硬件中。這些硬件卸載構成了網絡I/O處理的主幹,範圍從簡單的分散聚集I/O、校驗、計算和數據包分段到完整的傳輸層加速器,如TCP卸載和RDMA。

商用服務器對於線速I/O的低延遲處理需求達到了前所未有的高度,硬件無法跟上數據中心網絡工作負載的快速變化。例如,用於訪問網絡附加存儲、新標準和隧道格式的壓縮技術都在快速發展,超過了ASIC開發和部署的生命週期。此外,數據中心網絡範式從專有的中間盒,例如防火牆和入侵檢測系統,轉變爲虛擬網絡功能(VNF) ,這也進一步推動了計算需求。VNF給CPU的網絡處理帶來了負擔,並且也對計算提出了更高的要求。

CPU和GPU的挑戰

網絡I/O的性能問題長期以來一直備受關注,其重點在於消除操作系統網絡堆棧中的低效率以及優化NIC-CPU交互。目前實現VNF的常用方法是完全繞過網絡堆棧,直接從用戶級庫(例如DPDK)訪問原始數據包。此外,CPU和NIC硬件提供了幾種機制來提高I/O處理的效率,例如,將數據直接引入CPU LLC(DDIO),並通過減少CPU內核之間的緩存爭用(例如,接收端擴展)和降低中斷頻率(例如,中斷調製)來提高可擴展性。但即使採用了這些增強功能,在10Gbps的速度下依舊需要多個CPU內核來執行公共網絡功能。此外,現有系統也會因爲CPU資源爭用而導致延遲增加,包處理性能也出現波動。

GPU也被用於加速網絡數據包處理應用(例如,PacketShader、SSLShader、SNAP和GASPP)。不幸的是,由於GPU控制和PCIe數據傳輸,GPU引入了高延遲開銷。此外,在大多數I/O密集型工作負載(如路由)中,GPU的TCO增益和功率效率受到了質疑,僅在CPU上使用延遲隱藏技術就能夠在較低的延遲下實現類似的性能。目前關於使用GPU加速網絡處理還存在許多爭議。伴隨着一系列的挑戰,網絡與計算的高效融合勢在必行。

網內計算:網絡與計算融合的助推器

網內計算(In-network computing)是近年來出現的一個新的研究領域,側重於網絡內的計算,利用新型可編程網絡設備(如可編程交換機ASIC,網絡處理器,FPGA和可編程NIC)的功能,將計算從CPU轉移到網絡。

雖然網內計算的概念最早可以追溯到二十年前,但許多人認爲,如今將軟硬件創新結合的時代正是網內計算真正發揮作用的時代。從系統的角度看,網內計算的定義意味着無需向網絡中添加新設備,因爲你已經使用了交換機和NIC。因此,網內計算的開銷很小,因爲不需要額外的空間、成本或空閒功率。此外,網內計算在事務通過網絡時就終止事務,可以減少網絡上的負載。迄今爲止,網內計算是在三類設備上實現的:FPGA,SmartNIC和可編程交換機。

可編程switch-ASIC的引入和SmartNIC的興起是網內計算的推動力。在過去,網絡設備的功能是固定的,僅支持製造商定義的功能。相比之下,可編程網絡設備允許用戶在用高級語言編寫代碼時實現自己想要的功能。今天,可編程網絡領域使用的主要語言是P4,是一種開源的、特定領域的語言。最初,該語言主要用於定義新協議和網絡相關功能(例如,帶內網絡遙測)。很快,研究人員就開始在語言和平臺的基礎上將更復雜的功能移植到網絡中。

網內計算的優勢:高吞吐量、低延遲、低能耗

網內計算的主要優勢是性能,包括吞吐量和延遲。如今,許多網絡設備支持亞微秒級的延遲,在非超額訂閱的情況下差異很小。但是,這並不是減少延遲的主要來源。由於網內計算指的是網絡內的處理,這意味着事務在其路徑中就終止,無需到達終端主機,從而節省了終端主機引入的延遲,以及網內計算節點到終端主機之間的網絡設備。特別是在雲環境中,服務提供商都在努力克服服務延遲,因此減少延遲非常重要。

第二個性能優勢吞吐量,它是數據包處理速率的屬性。交換機ASIC處理速度高達每秒100億個數據包,因此可能支持每秒數十億次的操作。這類交換機被設計爲管道,連續移動數據而不出現卡頓。在大多數情況下,即使一個操作(數據包)暫停(排隊),例如在共享資源(擁塞)上競爭時,其他數據包的處理並不會受影響。使用網內計算實現的應用程序與基於主機的同類產品相比,性能提升了一萬倍。

網內計算還有一個讓人意想不到好處是能耗。儘管大家都認爲網絡交換機是一個耗電的設備,但如果只考慮每瓦操作,網絡交換機更具吸引力,每瓦特支持數百萬次操作,這意味着對於某些應用程序來說,這種方法的效率比基於軟件的解決方案高一千倍。舉例來說,在一個交換機上,一百萬個鍵值存儲查詢的“成本”小於一瓦特。由於網絡交換機是用戶網絡的一部分,因此大部分功耗已經包含在包轉發過程中,並且網內計算的開銷很小,僅佔交換機總功耗的幾個百分點。

查看更多內容

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章