字节跳动 Service Mesh 数据面编译优化实践
摘要
字节跳动在内部大规模落地了 Service Mesh,提供 RPC、HTTP 等多种流量代理能力,以及丰富的服务治理功能。Service Mesh 架构包含数据面和控制面,其中,字节跳动 Service Mesh 数据面基于开源的 Envoy 项目进行二次开发及改造,并针对主要的流量代理及服务治理功能进行了重写,项目采用 C++ 语言编写。
我们在优化数据面的历程中,基于 LLVM 编译工具链,围绕 C++ Devirtualization 以及编译优化进行了较多探索,落地了 LTO (Link Time Optimization)、PGO (Profile Guided Optimization) 、C++ Devirtualization 等编译优化技术,获得了 25% 的可观性能收益。本文将分享我们在字节跳动 Service Mesh 数据面的编译优化方向相关工作。
欢迎在评论区写下你对这篇文章的看法。