IT袋

当前位置:主页 > 经验教程 > 系统教程 >

什么是eBPF技术

什么是eBPF技术 它何以改变Linux?(2)

时间:2023-09-23 12:11:46 来源:IT袋 作者:苏晓敏
导读:什么是eBPF技术,InfoQ:为什么 eBPF 在近⼏年突然⽕了起来?背后有哪些因素助推? 陈莉君教授 :eBPF 近几年爆火的背后,有以下几个因素助推: • eBPF 技术本身具有的优

什么是eBPF技术

InfoQ:为什么 eBPF 在近⼏年突然⽕了起来?背后有哪些因素助推?

陈莉君教授:eBPF 近几年爆火的背后,有以下几个因素助推:

• eBPF 技术本身具有的优越性,能够给内核带来性能提升、扩展性、安全性等。

• 越来越多的 SaaS 平台和应用程序的出现,需要实时监控和调优,而 eBPF 的实时性能分析可以很好的满足此类需求。

• eBPF 提供了一种新的灵活性,可以集中地管理和监控大量服务。这使得系统运维人员更容易应对许多运维问题,而不需要花费大量的时间进行调查和调整。

• eBPF 可以收集、分析、运用巨量数据,为公司提供可视化的监控和预测,这将带来前所未有的管理优势。

• 云计算和容器化计算技术的普及,使得 eBPF 可以与容器技术紧密结合,更方便的收集容器内的性能和状态数据;

• 谷歌和其他巨头公司使用 eBPF 作为它们的跟踪技术和监控解决方案,这给它赋予了更大的价值和关注度。

eBPF 如何改变 Linux? 

InfoQ:作为⼀项⾰命性的技术,eBPF 为 Linux 带来了哪些改变?它是如何⼯作的?

陈莉君教授:eBPF 在 Linux 中有多项改变,如提高内核灵活性,可以在不需要重新编译内核的情况下实现系统功能的快速修改和扩展;改善安全性,eBPF 应用可以进行精确的安全检查,从而提供更好的内核安全性,以及检测和防止内核攻击;改善性能,eBPF 允许开发者构建内核性能数据采集程序,从而使内核性能数据采集变得更加简单,可用于检测内核性能问题,如异常、调试、性能分析等。

eBPF 是 Linux 内核中软件实现的虚拟机,其工作原理是:用户把 eBPF 程序编译为 eBPF 指令,然后通过 bpf() 系统调用将 eBPF 指令加载到内核的特定挂载点,由特定的事件来触发 eBPF 指令的执行。在挂载 eBPF 指令时内核会进行充分验证,避免 eBPF 代码影响内核的安全和稳定性。另外内核也会进行 JIT 编译,把 eBPF 指令翻译为本地指令,减少性能开销。

内核在网络处理路径上中预置了很多 eBPF 的挂载点,例如 xdp、qdisc、tcp-bpf、socket 等。eBPF 程序可以加载到这些挂载点,并调用内核提供的特定 helper 函数来修改和控制网络报文。eBPF 程序可以通过 map 数据结构来保存和交换数据。 

InfoQ:⽬前 eBPF 主要有哪些成熟的应⽤场景?

陈莉君教授:eBPF 的性能和稳定性使它成为一种非常强大的内核性能调优工具,它的主要应用场景有:

• 网络跟踪:eBPF 可以让用户在内核中捕获和分析数据包,从而对网络进行性能跟踪。

• 性能监控:eBPF 可以通过实时监控系统性能数据(如 CPU 利用率、内存使用情况等),帮助用户诊断和解决系统问题。

相关阅读