<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

什么是eBPF,eBPF為何備受追捧?

OSC開源社區 ? 來源:OSC開源社區 ? 2023-05-06 11:41 ? 次閱讀

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、汽車軟件、開源商業化、開源教育培訓、云原生等熱門話題,探討開源未來,助力開源發展。

編輯:黃飛

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據中心
    +關注

    關注

    15

    文章

    4265

    瀏覽量

    70417
  • 內核模塊
    +關注

    關注

    0

    文章

    10

    瀏覽量

    3052
  • 負載均衡器
    +關注

    關注

    0

    文章

    18

    瀏覽量

    2556

原文標題:eBPF,何以稱得上是革命性的內核技術?

文章出處:【微信號:OSC開源社區,微信公眾號:OSC開源社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    eBPF動手實踐系列三:基于原生libbpf庫的eBPF編程改進方案簡析

    在上一篇文章《eBPF動手實踐系列二:構建基于純C語言的eBPF項目》中,我們初步實現了脫離內核源碼進行純C語言eBPF項目的構建。libbpf庫在早期和內核源碼結合的比較緊密,如今的libbpf庫更加成熟,已經完全脫離內核源碼
    的頭像 發表于 03-19 14:19 ?331次閱讀
    <b class='flag-5'>eBPF</b>動手實踐系列三:基于原生libbpf庫的<b class='flag-5'>eBPF</b>編程改進方案簡析

    基于原生libbpf庫的eBPF編程改進方案

    為了簡化 eBPF程序的開發流程,降低開發者在使用 libbpf 庫時的入門難度,libbpf-bootstrap 框架應運而生?;趌ibbpf-bootstrap框架的編程方案是目前網絡上看到的最主流編程方案。
    發表于 03-19 14:19 ?196次閱讀
    基于原生libbpf庫的<b class='flag-5'>eBPF</b>編程改進方案

    數字孿生城市為何備受追捧?其應用場景有多寬?

    從城市治理的角度來看,數字孿生城市相當于真實世界的“操作系統”,有了它就可以遠程對城市的每一個角落進行監測、智慧調度,無論是街道、社區,還是商場、變電站乃至城市排水系統,從而提升城市的治理效率。
    的頭像 發表于 02-23 10:29 ?137次閱讀
    數字孿生城市<b class='flag-5'>為何</b><b class='flag-5'>備受</b><b class='flag-5'>追捧</b>?其應用場景有多寬?

    探索aarch64架構上使用ftrace的BPF LSM

    筆者在MacBook M2上搭建Linux虛擬機上開發eBPF程序時,遇到一些LSM eBPF類型程序無法運行的問題,哪怕是5.15內核的ubuntu server,依舊無法正常運行。顯然
    的頭像 發表于 01-25 09:30 ?319次閱讀

    基于ebpf的性能工具應用

    在實際的軟件開發過程中,內存問題常常是耗費大量時間進行分析的挑戰之一。為了更有效地定位和解決與內存相關的難題,一系列輔助工具應運而生,其中備受贊譽的Valgrind工具便是其中之一。事實上,筆者本人
    的頭像 發表于 11-08 16:19 ?233次閱讀
    基于<b class='flag-5'>ebpf</b>的性能工具應用

    介紹一種基于eBPF的Linux安全防護系統

    針對操作系統、內核安全,聯通云操作系統團隊開發了的一個基于 eBPF 的 Linux 安全防護系統 safeguard,可以實現安全操作的審計攔截及安全防護功能。項目采用 libbpfgo
    的頭像 發表于 11-07 17:43 ?517次閱讀
    介紹一種基于<b class='flag-5'>eBPF</b>的Linux安全防護系統

    ebpf的快速開發工具--libbpf-bootstrap

    基于ubuntu22.04-深入淺出 eBPF 基于ebpf的性能工具-bpftrace 基于ebpf的性能工具-bpftrace腳本語法 基于ebpf的性能工具-bpftrace實戰
    的頭像 發表于 09-25 09:04 ?455次閱讀
    <b class='flag-5'>ebpf</b>的快速開發工具--libbpf-bootstrap

    基于ebpf的性能工具-bpftrace腳本語法

    bpftrace 通過高度抽象的封裝來使用 eBPF,大多數功能只需要寥寥幾筆就可以運行起來,可以很快讓我們搞清楚 eBPF 是什么樣的,而暫時不關心 eBPF 復雜的內部機理。由于
    的頭像 發表于 09-04 16:04 ?607次閱讀
    基于<b class='flag-5'>ebpf</b>的性能工具-bpftrace腳本語法

    基于ebpf的性能工具-bpftrace

    在前面我已經分享了關于ebpf入門的文章: 基于ubuntu22.04-深入淺出 eBPF 。 這篇文章介紹一個基于ebpf技術的強大工具--bpftrace。 在現代計算機系統中,了解系統的內部
    的頭像 發表于 09-04 16:02 ?390次閱讀
    基于<b class='flag-5'>ebpf</b>的性能工具-bpftrace

    Linux跟蹤工具bpftrace的原理和使用

    這篇文章介紹一個基于ebpf技術的強大工具--bpftrace。
    發表于 09-01 15:10 ?1274次閱讀
    Linux跟蹤工具bpftrace的原理和使用

    eBPF的前世今生?eBPF在使用中遇到的問題有哪些?

    在介紹eBPF (Extended Berkeley Packet Filter)之前,我們先來了解一下它的前身-BPF (Berkeley Packet Filter)伯克利數據包過濾器。
    的頭像 發表于 08-12 15:10 ?1236次閱讀
    <b class='flag-5'>eBPF</b>的前世今生?<b class='flag-5'>eBPF</b>在使用中遇到的問題有哪些?

    LED晶膜屏為何日益受到市場追捧?

    等領域。同時,隨著LED顯示技術的不斷進步和成本的不斷降低,LED晶膜屏的價格也逐漸趨于合理,更加接近市場需求,因此受到市場的追捧。下面且聽深圳邁普光彩小編的詳談。 1、高亮度和高清晰度 LED晶膜屏具有高亮度、高對比度、高飽
    的頭像 發表于 08-11 12:28 ?508次閱讀

    如何利用ebpf檢測rootkit項目取證呢?

    Rootkit木馬是一種系統內核級病毒木馬,其進入內核模塊后能獲取到操作系統高級權限
    的頭像 發表于 08-01 11:08 ?546次閱讀
    如何利用<b class='flag-5'>ebpf</b>檢測rootkit項目取證呢?

    基于ubuntu22.04-深入淺出 eBPF

    筆者在很早之前就看eBPF這類似的文章,那時候看這個技術一臉懵逼,不知道它是用來做什么,可以解決什么問題。所以也沒有太關注這個技術。很慶幸最近剛好有機會研究這個技術。 什么是BPF 「BPF的全稱
    的頭像 發表于 06-12 11:20 ?670次閱讀
    基于ubuntu22.04-深入淺出 <b class='flag-5'>eBPF</b>

    BPF如何在Unix內核實現網絡數據包過濾

    BPF發展到現在名稱升級為eBPF:「extended Berkeley Packet Filter」。它演進成為了一套通用執行引擎,提供可基于系統或程序事件高效安全執行特定代碼的通用能力,通用能力的使用者不再局限于內核開發者。
    發表于 06-11 15:24 ?680次閱讀
    BPF如何在Unix內核實現網絡數據包過濾
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>