【openEuler 2023 年度优秀项目推荐】openEuler high-performance-network SIG 高性能用户态协议栈Gazelle

-
描述:gazelle是一个无锁多线程高性能用户态协议栈解决方案。在满足高性能、高可用的同时,具备良好的通用性和易用性。
-
推荐人:胡峰
@solarhu openEuler TC成员,陆志浩 @MrRlu openEuler sig-high-performance-network maintainers,吴长冶 @ nlgwcy openEuler sig-high-performance-network maintainers,郑杰兵@steganographer
中移苏研社区开发者
-
社区地址:https://gitee.com/openeuler/gazelle
openEuler
优秀项目衡量标准
-
推荐奖项openEuler
年度优秀项目
- 开源开放
项目采用木兰开源协议,代码托管在openEuler
-
行业影响
当前项目在通信、金融等多个领域被广泛关注;已在多个客户场景落入商用规划中;
-
技术创新
gazelle采用bypass内核的思路,打造高性能、轻量化的用户态协议栈,能大幅提升网络IO能力。在满足高性能、高可用的同时,具备良好的通用性和易用性;
-
社区活跃
社区开发者20+,来源广泛,包括高校、公司、个人开发者等,各类pr 300+,讨论充分,评审意见详实。
-
高质量开发和运营 代码符合规范,代码质量高,文档详尽。邀请了外部领域开发者,高校个人开发者共同创新开发,每周例会。
1.
软件介绍
网络协议栈作为现代应用的关键路径,一直是性能研究的热点。近年来,随着软硬件技术的发展,网络协议栈面临以下问题和诉求。
硬件视角:
• CPU
算力和网卡算力差距逐渐增大,单核 CPU 无法充分发挥网卡带宽的发展红利。
• 众核架构下,协议栈设计需避免 NUMA
内存访问陷阱。
软件视角:
• 现代大型软件性能要求高,往往采用多线程架构充分利用 CPU、网卡等硬件资源,并期望随着线程数的增加软件性能线性增长。
• 应用网络模型多样,对协议栈通用性诉求高。
• 当前内核协议栈具备通用性高、分层解耦的特点,但性能不足;用户态协议栈一般面向特定场景,追求极致性能的同时, 往往无法兼顾通用性。
协议栈设计挑战:
• 数据库等场景,应用网络模型多样,且对网络性能要求高,实现兼顾高性能和通用性的协议栈软件难度大。
gazelle是一个基于dpdk和lwip协议栈的、无锁多进程高性能用户态协议栈解决方案。在满足高性能、高可用的同时,具备良好的通用性和易用性。关键特性如下:
高性能:
•
超轻量:基于dpdk、lwip实现高性能轻量协议栈能力;
•
极致性能:基于区域大页划分、动态绑核、全路径零拷贝等技术,实现高线性度并发协议栈;
•
硬件加速:支持TSO/CSUM/GRO等硬件卸载,打通软硬件垂直加速路径;
通用性:
•
posix兼容:接口完全兼容posix api,应用零修改;
•
通用网络模型:基于fd路由器、代理式唤醒等机制实现自适应网络模型调度,满足任意网络应用场景;
易用性:
•
即插即用:基于 LD_PRELOAD
实现业务部署免配套,安装 Gazelle 后协议栈加速效果立刻生效;
易运维:
•
运维工具:具备流量统计、指标日志、命令行等运维手段;
2.
社区大事记
-
移动云高性能远程调用框架ERPC在Gazelle上的最佳实践与应用
-
openEuler Meetup
广州站宣讲获得关注
-
openEuler Developer Day 2022
高性能网络专题gazelle首次亮相
participants (1)
-
zhujunhao (C)