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

    文章

    4187

    浏览量

    70072
  • 内核模块
    +关注

    关注

    0

    文章

    10

    浏览量

    3047
  • 负载均衡器
    +关注

    关注

    0

    文章

    18

    浏览量

    2554

原文标题:eBPF,何以称得上是革命性的内核技术?

文章出处:【微信号:OSC开源社区,微信公众号:OSC开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    eBPF动手实践系列三:基于原生libbpf库的eBPF编程改进方案简析

    在上一篇文章《eBPF动手实践系列二:构建基于纯C语言的eBPF项目》中,我们初步实现了脱离内核源码进行纯C语言eBPF项目的构建。libbpf库在早期和内核源码结合的比较紧密,如今的libbpf库更加成熟,已经完全脱离内核源码
    的头像 发表于 03-19 14:19 235次阅读
    <b class='flag-5'>eBPF</b>动手实践系列三:基于原生libbpf库的<b class='flag-5'>eBPF</b>编程改进方案简析

    基于原生libbpf库的eBPF编程改进方案

    为了简化 eBPF程序的开发流程,降低开发者在使用 libbpf 库时的入门难度,libbpf-bootstrap 框架应运而生。基于libbpf-bootstrap框架的编程方案是目前网络上看到的最主流编程方案。
    发表于 03-19 14:19 147次阅读
    基于原生libbpf库的<b class='flag-5'>eBPF</b>编程改进方案

    数字孪生城市为何备受追捧?其应用场景有多宽?

    从城市治理的角度来看,数字孪生城市相当于真实世界的“操作系统”,有了它就可以远程对城市的每一个角落进行监测、智慧调度,无论是街道、社区,还是商场、变电站乃至城市排水系统,从而提升城市的治理效率。
    的头像 发表于 02-23 10:29 109次阅读
    数字孪生城市<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 251次阅读

    基于ebpf的性能工具应用

    在实际的软件开发过程中,内存问题常常是耗费大量时间进行分析的挑战之一。为了更有效地定位和解决与内存相关的难题,一系列辅助工具应运而生,其中备受赞誉的Valgrind工具便是其中之一。事实上,笔者本人
    的头像 发表于 11-08 16:19 200次阅读
    基于<b class='flag-5'>ebpf</b>的性能工具应用

    介绍一种基于eBPF的Linux安全防护系统

    针对操作系统、内核安全,联通云操作系统团队开发了的一个基于 eBPF 的 Linux 安全防护系统 safeguard,可以实现安全操作的审计拦截及安全防护功能。项目采用 libbpfgo
    的头像 发表于 11-07 17:43 473次阅读
    介绍一种基于<b class='flag-5'>eBPF</b>的Linux安全防护系统

    ebpf的快速开发工具--libbpf-bootstrap

    基于ubuntu22.04-深入浅出 eBPF 基于ebpf的性能工具-bpftrace 基于ebpf的性能工具-bpftrace脚本语法 基于ebpf的性能工具-bpftrace实战
    的头像 发表于 09-25 09:04 383次阅读
    <b class='flag-5'>ebpf</b>的快速开发工具--libbpf-bootstrap

    基于ebpf的性能工具-bpftrace脚本语法

    bpftrace 通过高度抽象的封装来使用 eBPF,大多数功能只需要寥寥几笔就可以运行起来,可以很快让我们搞清楚 eBPF 是什么样的,而暂时不关心 eBPF 复杂的内部机理。由于
    的头像 发表于 09-04 16:04 554次阅读
    基于<b class='flag-5'>ebpf</b>的性能工具-bpftrace脚本语法

    基于ebpf的性能工具-bpftrace

    在前面我已经分享了关于ebpf入门的文章: 基于ubuntu22.04-深入浅出 eBPF 。 这篇文章介绍一个基于ebpf技术的强大工具--bpftrace。 在现代计算机系统中,了解系统的内部
    的头像 发表于 09-04 16:02 342次阅读
    基于<b class='flag-5'>ebpf</b>的性能工具-bpftrace

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

    这篇文章介绍一个基于ebpf技术的强大工具--bpftrace。
    发表于 09-01 15:10 1205次阅读
    Linux跟踪工具bpftrace的原理和使用

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

    在介绍eBPF (Extended Berkeley Packet Filter)之前,我们先来了解一下它的前身-BPF (Berkeley Packet Filter)伯克利数据包过滤器。
    的头像 发表于 08-12 15:10 1141次阅读
    <b class='flag-5'>eBPF</b>的前世今生?<b class='flag-5'>eBPF</b>在使用中遇到的问题有哪些?

    基于ubuntu22.04-深入浅出 eBPF

    笔者在很早之前就看eBPF这类似的文章,那时候看这个技术一脸懵逼,不知道它是用来做什么,可以解决什么问题。所以也没有太关注这个技术。很庆幸最近刚好有机会研究这个技术。 什么是BPF 「BPF的全称
    的头像 发表于 06-12 11:20 631次阅读
    基于ubuntu22.04-深入浅出 <b class='flag-5'>eBPF</b>

    BPF如何在Unix内核实现网络数据包过滤

    BPF发展到现在名称升级为eBPF:「extended Berkeley Packet Filter」。它演进成为了一套通用执行引擎,提供可基于系统或程序事件高效安全执行特定代码的通用能力,通用能力的使用者不再局限于内核开发者。
    发表于 06-11 15:24 574次阅读
    BPF如何在Unix内核实现网络数据包过滤

    聚焦 eBPF 技术,GOTC 2023 专题论坛邀你探索更多可能性

    元宇宙、3D 与游戏、eBPF、Web3.0、区块链等热门技术主题,以及开源社区、AIGC、AI 编程、汽车软件、开源教育培训、云原生
    的头像 发表于 05-10 08:57 448次阅读
    聚焦 <b class='flag-5'>eBPF</b> 技术,GOTC 2023 专题论坛邀你探索更多可能性

    eBPF,何以称得上是革命性的内核技术?

    eBPF 的全称是 extended Berkeley Packet Filter,它被称之为 “革命性” 的内核技术,可以在 Linux 内核中运行沙盒程序,而无需更改内核源代码或加载内核模块
    的头像 发表于 05-08 08:26 410次阅读
    <b class='flag-5'>eBPF</b>,何以称得上是革命性的内核技术?