eBPF 的全稱是 extended Berkeley Packet Filter,它被稱之為 “革命性” 的內核技術,可以在 Linux 內核中運行沙盒程序,而無需更改內核源代碼或加載內核模塊。它提供了一種通用執行引擎,可以基于系統或程序事件高效安全地執行特定代碼,就像在實時 (JIT) 編譯器和驗證引擎的幫助下進行本機編譯一樣。如今,eBPF 被廣泛用于各種場景:在現代數據中心和云原生環境中提供高性能網絡和負載平衡,以低成本提取細粒度的安全可觀測性數據,幫助應用程序開發人員跟蹤應用程序,為性能故障排除、預防性應用程序和容器運行時安全實施提供見解等等。一些項目如 Facebook 公司的高性能 4 層負載均衡器 Katran,IO Visor 項目開源的 BCC、 BPFTrace 和 Kubectl-Trace,以及 CloudFlare 公司開源的 eBPF Exporter 和 bpf-tools 都使用了該技術。
eBPF 為何備受追捧?
用云杉網絡 VP 向陽的話來說:“ eBPF 最重要(沒有之一)的特點是安全性” 。他表示,以往必須編寫內核模塊才能做到的工作現在基本都能做到。但關鍵性的區別在于,eBPF 代碼會經過 Verifier 嚴格的驗證,杜絕了死循環、內存泄露等問題。它會確保內核運行的安全,使得企業愿意在運行關鍵業務的生產系統中開啟此能力,從而釋放前所未有的內核可編程性。
eBPF 對可觀測性技術的影響更是革命性的,一方面這個場景下 eBPF 的「安全性」體現的更加淋漓盡致,它甚至不會對數據進行任何的修改; 另一方面 eBPF 的「零侵擾」特性使得云原生應用實現全景、全棧的可觀測性成為現實。隨著云基礎設施的迭代和發展、微服務的拆分,業務中的編程語言構成越來越復雜、服務間通信路徑涉及到的團隊越來越多。與此同時,現有的可觀測性方案往往要求打樁插碼,為開發者帶來了巨大的工作量,因此如何為所有業務支撐團隊呈現一個全景、全棧的可觀測性視圖成為急需解決的一個問題。
eBPF 采集的數據能覆蓋系統、網絡、應用等多個層面,能回答基礎設施的性能瓶頸位置,也能回答應用程序中的代碼函數熱點,在這方面表現出了得天獨厚的優勢。云杉網絡開源的云原生可觀測性平臺 DeepFlow 就充分利用了 eBPF 技術。借助 eBPF 的零侵擾性和安全性優勢,開發者無需修改任何一行代碼、無需改變任何一個運行參數、甚至無需重啟任何一個進程,即可實現全景、全棧的分布式追蹤、全景應用拓撲、全棧性能指標能力,覆蓋各類語言的應用、各類云原生基礎設施,為云原生環境下的可觀測性帶來了革命性的創新。
很多人都在關注 eBPF 介入后,應用程序性能會有所損耗。向陽認為,由于 eBPF 程序會 Hook 至內核函數中執行,它帶來的性能開銷與應用程序本身的資源消耗相關。如果應用本身邏輯非常簡單,例如時延不到 1ms,此時 eBPF 介入帶來的耗時占比會比較明顯。但對于大量的業務 —— 通常會有復雜的計算邏輯、更長的耗時,在生產環境上的經驗是大多只會引入 1%~5% 的性能影響。
另一方面,DeepFlow 也希望通過自身的開源來推進 eBPF 應用的繁榮,這樣也能更加促進 eBPF 技術自身的性能優化。而 DeepFlow 自身的持續測試機制也會在每次代碼合入之后進行自動化的性能影響評估,讓用戶清晰的知道影響到底有多大。eBPF 技術還在不斷發展,還有什么可能性有待挖掘?2023 年 5 月 28 日, GOTC 2023 eBPF 分論壇將于上海舉行,將一覽無余地展現 eBPF 技術,并分享如何將其結合到實際工作中。
與此同時,GOTC 2023 很榮幸邀請到向陽成為該分論壇的聯合出品人。早在清華大學攻讀計算機系博士學位期間,向陽就實現了世界上第一個全球 BGP 路由劫持實時監測系統,獲得了網絡測量領域國際頂級會議 IMC 頒發的社區貢獻獎,這也是該獎項首次頒發給中國大陸科研人員。
畢業后,向陽即加入了云杉網絡,如今作為云杉網絡的研發 VP,負責 DeepFlow 產品。正是在他的帶領下,云杉網絡將 eBPF 技術深度應用于 DeepFlow 之中。全球開源技術峰會(Global Open-source Technology Conference),簡稱 GOTC,是由開放原子開源基金會、 Linux 基金會亞太區、上海浦東軟件園和開源中國聯合發起的,面向全球開發者的一場盛大開源技術盛宴。5 月 27 日至 28 日,GOTC 2023 將于上海舉辦為期 2 天的開源行業盛會。大會將以行業展覽、主題發言、特別論壇、分論壇的形式展現,與會者將一起探討元宇宙、3D 與游戲、eBPF、Web3.0、區塊鏈等熱門技術主題,以及開源社區、AIGC、汽車軟件、開源商業化、開源教育培訓、云原生等熱門話題,探討開源未來,助力開源發展。
編輯:黃飛
-
數據中心
+關注
關注
16文章
4762瀏覽量
72086 -
內核模塊
+關注
關注
0文章
10瀏覽量
3088 -
負載均衡器
+關注
關注
0文章
18瀏覽量
2583
原文標題:eBPF,何以稱得上是革命性的內核技術?
文章出處:【微信號:OSC開源社區,微信公眾號:OSC開源社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論