Ebpf.io

2020-08-13 08:27:52

在查看和理解所有系统调用并将其与所有网络操作的数据包和套接字级别视图相结合的基础上,为保护系统提供革命性的新方法。虽然系统调用过滤、网络级过滤和进程上下文跟踪的各个方面通常由完全独立的系统处理,但eBPF允许将所有方面的可见性和控制性结合起来,以创建在更多上下文中运行、具有更好控制级别的安全系统。

可编程性和效率的结合使eBPF自然而然地适合网络解决方案的所有数据包处理要求。EBPF的可编程性允许添加额外的协议解析器,并且可以轻松地对任何转发逻辑进行编程,以满足不断变化的需求,而无需离开Linux内核的数据包处理上下文。JIT编译器提供的效率提供了接近本机编译的内核内代码的执行性能。

将eBPF程序附加到跟踪点以及内核和用户应用程序探测点的能力允许前所未有地查看应用程序和系统本身的运行时行为。通过赋予应用程序端和系统端的自省能力,这两个视图可以组合在一起,从而允许强大而独特的洞察力来解决系统性能问题。先进的统计数据结构允许以高效的方式提取有意义的可视数据,而不需要像类似系统通常所做的那样导出大量采样数据。

EBPF不依赖于操作系统公开的静态计数器和量规,而是能够基于广泛的可能来源收集自定义度量和生成可见性事件的内核内聚合。这扩展了可以实现的可见性深度,并且通过仅收集所需的可见性数据以及通过在事件源生成直方图和类似的数据结构而不是依赖于样本导出,显著降低了整体系统开销。