001.ebpf能做什么

ebpf的官网:https://ebpf.io/zh-hans/

eBPF 是 Linux 内核里的“可编程显微镜”,
能以极低开销,把 CPU、内存、网络、IO、系统调用的真实行为实时暴露出来。

eBPF 能做什么(能力全景表)

分类 eBPF 技术 / Hook 点 能解决的问题 典型场景 / 示例
系统调用观测 tracepoint / kprobe / kretprobe 看清进程在调用哪些 syscall、参数与返回值 追踪 open/mmap/brk/execve,定位异常行为
函数级插桩 kprobe / fentry / fexit 精确到内核函数级别的性能与行为分析 追踪 do_mmap、schedule、VFS 路径
CPU 调度分析 tracepoint:sched_* 调度延迟、抢占、上下文切换 查 CPU 抖动、延迟尖刺
内存分析(内核) tracepoint + kprobe 内存分配/释放、泄漏、碎片 统计 mmap/munmap/brk
内存分析(用户态) uprobe / uretprobe malloc/free 调用栈、泄漏定位 替代 Valgrind 的在线方案
网络包处理(高速) XDP L3/L4 高速包处理、丢包/转发 DDoS 防护、L4 LB、包过滤
网络流量控制 tc (clsact) QoS、限速、流量整形 出口限速、优先级队列
Socket 观测 socket filter / cgroup skb 应用级网络可观测 HTTP、RPC 流量统计
安全审计 LSM hooks / tracepoint 行为审计、入侵检测 非法 syscall、提权检测
进程生命周期 tracepoint:task_* 进程创建/退出追踪 监控僵尸进程、异常 fork
文件系统观测 kprobe / tracepoint 文件读写、权限、延迟 VFS 热点、慢 IO
磁盘 IO 分析 tracepoint:block_* IO 延迟、队列拥塞 慢盘定位、IO 放大
性能剖析 perf_event CPU 火焰图、热点函数 低开销在线 profiling
跨层关联分析 map + ringbuf 用户态↔内核态因果链 请求 → syscall → IO
可编程数据面 maps(hash/array/LRU) 状态保存、聚合、过滤 计数器、白名单
低开销监控 CO-RE 一次编译,多内核运行 生产环境长期运行

eBPF 的核心优势(一眼看懂)

维度 传统方案 eBPF
开销 高(strace/valgrind) 极低(可长期运行)
粒度 粗 函数/参数级
在线性 多为离线 在线、实时
侵入性 高 无侵入
安全性 不可控 内核验证器保障

典型产品 / 项目(理解落地)

方向 代表
性能分析 perf, bcc, bpftrace
可观测性 Cilium, Pixie
安全 Falco, Tetragon
网络 Cilium (XDP/tc)
自研工具 进程/内存/IO 专项 eBPF 工具
posted @ 2026-06-02 00:04  BlackSnow  阅读(42)  评论(0)    收藏  举报