Skip to content

内核trace工具eBPF

内核 trace 工具 eBPF

简介

eBPF用于在 Linux 内核中进行高级的事件追踪和性能分析。它允许用户编写安全的、高性能的代码片段,插入到内核中的各种钩子中,从而实时地捕获和处理事件数据,而无需修改内核代码或重新编译内核。

todo 截图

  • Kprobe/UprobeKprobe(Kernel Probe)Uprobe(User Probe)是 Linux 内核和用户空间程序中的动态跟踪技术,通常与 eBPF 结合使用。它们允许开发者在不修改源代码的情况下,在特定函数执行前后或者指定位置插入探测点,以捕获事件并执行相应的动作。
  • Tracepoint:Tracepoints 是 Linux 内核中的一种静态跟踪工具,允许开发者在关键的内核函数或事件上插入特定的跟踪点,以捕获有关内核活动的详细信息。虽然 Tracepoints 本身是静态的,但可以使用 eBPF 技术来动态处理和过滤跟踪的数据。这使得 Tracepoints 更加灵活和强大,可以根据需求实时地分析和处理跟踪数据。
  • Perf event:perf eventperf 工具中的一个重要概念,它用于描述和监控系统中发生的各种事件。在 perf 中,事件可以是硬件事件(如指令执行、缓存失效等)或软件事件(如进程切换、函数调用等),用于分析和评估系统的性能特征。
  • Cgroup v1/v2:Cgroup v1/v2eBPF 在 Linux 系统中的关联性主要体现在它们共同用于系统的资源管理、监控和调优,尽管它们是不同的技术,但可以结合使用以提升系统管理和性能调试的能力。
  • Lightweight Tunnel Encapsulation:Lightweight Tunnel Encapsulation (LWTE) 和 eBPF 在某些场景下可以结合使用,以增强网络管理和安全性能。如流量监控分析、安全审计和入侵检测、网络性能优化。
  • XDP(network driver):eBPF(Extended Berkeley Packet Filter)XDP(eXpress Data Path)之间存在密切的关联性,特别是在网络驱动程序层面。
  • tc(traffic control):tc(Traffic ControleBPF(Extended Berkeley Packet Filter)在网络管理和性能优化方面有着不同但互补的功能和应用场景。
  • Socket:SocketeBPF 在网络编程和性能优化中有着密切的关联性,尤其是在网络数据包的处理和分析方面。