io_uring vs epoll ,谁在网络编程领域更胜一筹?

简介:从定量分析的角度,通过量化 io_uring 和 epoll 两种编程框架下的相关操作的耗时,来分析二者的性能差异。

3.jpg

本文作者:王小光,「高性能存储技术SIG」核心成员。

背景

io_uring 在传统存储 io 场景已经证明其价值,但 io_uring 不仅支持传统存储 io,也支持网络 io。io_uring 社区有众多的开发者尝试将 io_uring 用于网络应用。我们之前也在《你认为 io_uring 只适用于存储 IO?大错特错!》中也探索过 io_uring 在网络场景的应用及其与传统网络编程基石 epoll 的对比,当时我们的测试结果显示在 cpu 漏洞缓解使能的前提下,io_uring 相比于 epoll 可以带来一定的优势,在 cpu 漏铜缓解未使能时,io_uring 相比于 epoll 没有优势,可能还会存在性能下降。

在 io_uring 社区,关于 io_uring 和 epoll 孰优孰劣也一直存在争论,有些开发者宣称 io_uring 可以获得比 epoll 更好的性能,有些开发者则宣称二者性能持平或者 io_uring 甚至不如 epoll。相关的讨论非常多,具体可参见如下两例:

https://github.com/axboe/liburing/issues/189

Wild results, cannot reproduce · Issue #8 · frevib/io_uring-echo-server · GitHub

以上讨论从 2020 年 8 月一直持续到现在,其过程非常长也非常地激烈。可以看出 io_uring 和 epoll 在网络编程领域孰优孰劣目前确实比较难以达成共识。

目前很多业务想将 io_uring 在网络场景应用起来,但 io_uring 是否能比 epoll 带来性能提升,大家或多或少存在些许疑问。为了彻底厘清这个问题,龙蜥社区高性能存储 SIG尝试从定量分析的角度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值