字节跳动开源 Shmipc:基于共享内存的高性能 IPC
💡
原文中文,约4000字,阅读约需10分钟。
📝
内容提要
Shmipc是字节跳动服务框架团队研发的高性能进程间通讯库,基于共享内存构建,具有零拷贝特点,引入的同步机制能提升性能。Shmipc应用于Service Mesh场景下,能在大包和IO密集型场景中获得显著性能收益。本文介绍了Shmipc的设计思路和演进规划,包括零拷贝、同步机制和批量收割IO等。在字节的生产环境中,Shmipc应用于3000+服务、100w+实例,不同业务场景表现出不同收益。文章还提到了一些采坑记录和后续演进计划。欢迎感兴趣的同学参与Shmipc项目的贡献。
🎯
关键要点
- Shmipc是字节跳动服务框架团队研发的高性能进程间通讯库,基于共享内存构建,具有零拷贝特点。
- Shmipc在Service Mesh场景下应用,能在大包和IO密集型场景中获得显著性能收益。
- Shmipc的设计思路包括零拷贝、同步机制和批量收割IO等。
- 在字节的生产环境中,Shmipc应用于3000+服务、100w+实例,不同业务场景表现出不同收益。
- 零拷贝技术消除了多次内存拷贝,节省CPU使用。
- 同步机制分为按需实时同步、定时同步和轮询同步,适用于不同场景。
- 批量收割IO通过构造IO队列来提高小包IO密集场景的性能。
- 在字节生产环境中,风控业务使用Shmipc降低了24%的资源使用。
- 在实际落地过程中,Shmipc遇到共享内存泄漏、串包等问题,并提出了相应的解决方案。
- 后续演进计划包括整合至微服务RPC框架、开源Rust和C++版本的Shmipc等。
- 欢迎感兴趣的同学参与Shmipc项目的贡献,共同建设CloudWeGo开源社区。
➡️