二、cgroup 文档 开源项目 文章 视频 三、ebpf——Linux 内核中顶级子模块 文档 开源项目 文章 视频 四、llvm 文档 LLVM命令指南 开源项目 文章 视频 1、io_uring io_uring(以前称为aioring)是一个用于存储设备异步 I/O操作的Linux 内核系统调用接口,解决了与/或/等函数提供的类似接口的性能问题,用于对文件描...
XDP (Express Data Path):用于实现高性能的数据包处理和过滤; cgroup:用于实现基于cgroup的网络和资源控制策略; socket filters:用于实现套接字级别的数据包过滤和分析。 通过组合不同类型的eBPF程序,用户可以实现多种功能,如性能监控、网络安全策略控制、故障排查等。 eBPF映射(Maps) eBPF映射(Maps)是一种内核态与...
Borkmann 在网络堆栈中开发内核的工作让他站在满足 SDN 和云原生网络需求的前线。Linux 需要更新的抽象,因为其许多构建块在十多年前就已经设计好了——cgroup(CPU、内存处理)、命名空间(网络、挂载、pid)、SELinux、secomp、Netfilter、Netlink、AppArmor、Auditd、Perf 等。Borkmann 看到 netfilter 的 nftables 等...
cgroup 程序用于对 cgroup 内所有进程的网络过滤、套接字选项以及转发等进行动态控制,它最典型的应用场景是对容器中运行的多个进程进行网络控制。 这几类网络 eBPF 程序是在不同的事件触发时执行的,因此,在实际应用中我们通常可以把多个类型的 eBPF 程序结合起来,一起使用,来实现复杂的网络控制功能。比如,最流行的 ...
Brendan Gregg,他在2017年的linux.conf.au大会上的演讲提到「内核虚拟机eBPF」,表示,”超能力终于来到...
//将当前进程加入自定义cgroup cg_fd = cgroup_setup_and_join(cg_path); if(cg_fd < 0) goto err; //获取两个map的句柄存入全局变量 sockmap_fd = bpf_map__fd(skel->maps.sock_map); proxymap_fd = bpf_map__fd(skel->maps.proxy_map); ...
sockmap 需要关联到某个 cgroup,然后这个 cgroup 内的所有 socket 就都会执行加 载的 BPF 程序。 运行本文中的例子一台主机就够了,非常适合 BPF 练手。译文所用的完整代码, 原文用的完整代码。 由于译者水平有限,本文不免存在遗漏或错误之处。如有疑问,请查阅原文。
符合逻辑的是,如果我们认为服务网格是操作系统的责任,那么它必须符合并整合命名空间和 cgroup 的概念。这看起来会是这样的。 Service Mesh Namespace 不出所料,这看起来非常自然,而且可能是大多数用户从简单的角度所期望的。应用程序保持不变,它们继续使用套接字进行通信,就像以前那样。理想的服务网格是作为 Linux ...
基于cgroup 监控 tcp 网络连接,追踪内核丢弃的数据包,显示数据包地址、端口和调用栈等信息。 参考链接: BPF Documentation: https://www.infradead.org/~mchehab/kernel_docs/bpf/index.html BPF Portability and CO-RE: https://facebookmicrosites.github.io/bpf/blog/2020/02/19/bpf-portability-and-co-re....
在 Cilium 中主要包含 XDP from-netdev,tc from-netdev,to-netdev,from-network,from-overlay,to-overlay,from-host,to-host,from-container,to-container,cgroup/connect,cgroup/bind,cgroup/post_bind,cgroup/sendmsg,cgroup/recvmsg,cgroup/getpeername,sk_msg,sockops。 eBPF Maps: Cilium 中使用了很多 ...