免费领取《现代C++白皮书》及大会全套PPT    

点此领取

立即参会

毛文安

阿里云操作系统高级技术专家

多年Linux操作系统开发、性能调优经验,曾是华为内核实验室net子系统committer,负责内核版本的维护及网络特性开发,向Linux内核社区贡献50+补丁。现为阿里巴巴操作系统团队高级技术专家,主要负责领域为网络新特性的应用和eBPF tracing技术的探索,挖掘从容器应用到内核及驱动的全链路报文时延信息,为解决疑难的网络抖动问题打开一片天地。主导开发了丢包延迟可视化工具pingtrace,以及针对抖动问题的监控系统netinfo,BPF开发编译平台LCC等。

演讲主题

eBPF工具的开发和资源优化在多内核版本的实践

Linux内核版本经历了3.x向4.x到5.x演进,eBPF技术的支持也是从4.x开始完善起来,目前高版本内核已经支持纯CORE方式,而云上服务器有大量的3.10内核版本是不支持eBPF的,为了让我们现有的eBPF工具在这些存量机器得以支持,享受到eBPF带来的红利,我们移植了eBPF技术到低版本内核,保证一个工具可运行于低、中、高的内核版本。 另外,当前的BPF主要开发如下: 1、纯libbpf应用开发:这种开发方式不仅效率低,同时存在可移植问题,跨内核运行; 2、借助BCC:开发效率高、可移植性好,并且支持动态修改内核部分代码,非常灵活,但存在部署依赖Clang/LLVM,体量非常庞大;每次运行都要执行Clang/LLVM编译,严重消耗CPU、内存等资源,容易与其它服务争抢; LCC(Libbpf Compilation Collection)以 BPF CORE 为基础实现,保留了资源占用低、可移植性强等优点,还融合了BCC动态编译的特性,适合在生产环境批量部署应用。 LCC方案优点: 1、提供通用化内核代码模板,完全剥离出内核编译工程; 2、复用编译成果,本地侧无编译过程,不存在包依赖和CPU、内存等资源消耗问题; 3、针对集群多内核版本场景,可自适应不同版本差异,更适合批量部署; 我们通过优化eBPF工具的开发方法,节省了资源消耗,同时原来基于BCC的python工具,只需要在LCC的帮助下,就能在全量内核版本安全运行,给广大eBPF的爱好者提供一种新的探索和实践。

© boolan.com 博览 版权所有

沪ICP备15014563号-5

沪公网安备31011502003949号