小红花·文摘
  • 首页
  • 广场
  • 排行榜🏆
  • 直播
  • FAQ
Dify.AI

本文比较了 Linux 中的两种 I/O 处理机制:epoll 和 io_uring。epoll 适用于高并发场景,但需要多次系统调用;io_uring 通过共享环形队列减少系统调用次数,适合高吞吐量需求。尽管 io_uring 有优势,但在低版本内核或现有生态系统中,epoll 仍然是更合适的选择。选择应基于具体需求和环境。

Linux 异步 I/O:epoll 与 io_uring 对比

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-06-21T00:00:00Z
拉蒂西亚·阿夫罗特:一位审稿人的诞生

Lucas Draescher 提交的 PostgreSQL 补丁修复了 io_method=io_uring 的文件描述符泄漏问题。该补丁经过多次修订,未得到审查。作者建议在等待审查时主动审查他人补丁,以促进社区互动。补丁经过测试,确认问题真实存在,修复后文件描述符计数保持稳定,代码清晰,符合 PostgreSQL 规范。

拉蒂西亚·阿夫罗特:一位审稿人的诞生

Planet PostgreSQL
Planet PostgreSQL · 2026-06-05T00:00:00Z

io_uring 是 Linux 5.1 引入的异步 I/O 框架,利用共享内存环形缓冲区减少系统调用开销,支持多种文件和网络操作。核心数据结构包括提交队列(SQE)和完成队列(CQE),通过 SQPOLL 和 IOPOLL 等模式优化性能。注册文件描述符和缓冲区可减少重复开销,io-wq 处理阻塞操作。安全模型仍在演进,建议在生产环境中限制非特权用户使用。

【操作系统百科】io_uring 内核内部

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-05-18T00:00:00Z

本文讨论了在高并发网络服务中使用io_uring的多线程架构,推荐采用“每个工作线程一个ring”的Thread-per-Ring模式,并结合SO_REUSEPORT进行连接分流,以提升性能和简化代码。文章分析了多线程的线程安全问题,介绍了四种多线程架构模式及其优缺点,强调了内存管理和CPU亲和性的重要性,并提供了多线程Echo Server的实现示例,展示了如何有效利用io_uring进行高效的网络编程。

io_uring 多线程编程模式:从线程安全到架构选型

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-03-14T00:00:00Z
io_uring 核心原理:Linux 异步 I/O 的新纪元

io_uring 是 Linux 5.1 引入的新异步 I/O 接口,旨在解决 epoll 的性能瓶颈。它通过双环形缓冲区减少系统调用和内存拷贝,支持网络和磁盘 I/O,提升高频 I/O 性能,简化编程模型,推动 Linux I/O 的未来发展。

io_uring 核心原理:Linux 异步 I/O 的新纪元

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2025-11-30T00:00:00Z

在 Linux 网络编程中,epoll 已使用近 20 年,而 io_uring 的出现改变了这一局面。两者在架构、性能和适用场景上存在显著差异:epoll 依赖频繁的系统调用,适合遗留系统和低活跃连接;io_uring 通过批处理和零拷贝提升性能,更适合高性能需求和新项目。

巅峰对决:io_uring vs epoll 性能与架构对比

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2025-11-30T00:00:00Z

liburing 提供了更友好的 API 来使用 io_uring,简化了内存管理和请求处理。使用 liburing 的流程包括初始化、获取请求、提交、等待完成和处理结果。示例代码展示了一个简单的 cat 命令,适合高并发场景。

【io_uring】liburing 基础 API 详解:从 Hello World 到文件 I/O

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2025-11-30T00:00:00Z

本文介绍了如何使用 io_uring 实现 TCP Echo Server。与传统同步模型不同,io_uring 通过状态机管理连接状态,并通过回调链式处理异步操作。代码示例展示了连接、数据读取和写入的处理,并强调了内存管理的重要性。

实战:基于 io_uring 的 TCP Echo Server

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2025-11-30T00:00:00Z

io_uring通过SQPOLL、固定文件和提供缓冲区等特性,显著提升I/O性能,减少系统调用开销,优化内核资源管理。

io_uring 高级特性:榨干性能极限

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2025-11-30T00:00:00Z

Libevent 2.2(Alpha)版本引入了实验性的 io_uring 后端,结合了 Reactor 和 Proactor 模式。虽然目前主要使用 io_uring 的 POLL_ADD 操作,尚未完全发挥其异步能力,但已能减少系统调用。该后端仍处于实验阶段,未来有望支持真正的 Proactor 模式,以提升性能。

Libevent 对 io_uring 的支持现状

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2025-11-30T00:00:00Z

Linux 5.1 引入的 io_uring 技术彻底改变了高性能 I/O 的方式。文章探讨了 io_uring 的核心概念、异步 I/O 的优势,以及与 AIO 和 epoll 的比较,并介绍了如何使用 liburing API 进行文件 I/O 和网络编程。

io_uring 系列文章

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2025-11-30T00:00:00Z

本文讨论了io_uring的缺点与局限性,指出在某些场景下epoll更为优越。io_uring在低延迟和内存占用方面表现不佳,尤其在高并发和海量连接时。此外,编程复杂度和调试难度较高,生态和安全性问题也需考虑。选择技术时应根据具体需求,避免盲目追新。

反思与打破神话:为何特定场景 epoll 比 io_uring 更高效

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2025-11-30T00:00:00Z

在高性能系统编程中,Linux的io_uring模型通过将I/O操作从“询问就绪”转变为“提交后通知”,降低了内核与用户态的交互成本。Go语言在集成io_uring时面临调度、内存安全和接口兼容性等挑战,建议使用liburing与CGO进行初步集成以验证性能收益。资源管理和请求生命周期控制是主要难点,尤其在高并发场景下。

Go 如何集成 io_uring:从 CGO 封装到纯 Go 实现

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2025-11-30T00:00:00Z
Postgres 17与18的基准测试

PlanetScale Postgres 18引入了io_method配置选项,显著提升了磁盘I/O控制。基准测试显示,Postgres 18在不同I/O设置下的性能优于17版本,尤其在本地NVMe驱动上。io_uring在高并发场景下表现良好,但在低并发时效果不佳。整体而言,Postgres 18带来了显著的I/O改进和灵活性。

Postgres 17与18的基准测试

PlanetScale - Blog
PlanetScale - Blog · 2025-10-14T00:00:00Z
汉斯-尤尔根·肖宁:PostgreSQL 18:通过AIO提升I/O性能

PostgreSQL 18引入异步I/O(AIO),允许数据库在等待数据时进行计算,从而提升性能。AIO支持三种I/O模式,推荐使用io_uring。测试表明,AIO在大规模操作中显著降低延迟,尤其在顺序扫描时效果明显。

汉斯-尤尔根·肖宁:PostgreSQL 18:通过AIO提升I/O性能

Planet PostgreSQL
Planet PostgreSQL · 2025-09-19T05:00:05Z

研究人员发现了一种名为RingReaper的新型Linux恶意软件,能够规避传统EDR系统。它利用Linux内核的io_uring接口进行隐蔽操作,具备进程发现、网络枚举和权限提升的能力,并通过异步操作降低被监控的风险。这一恶意软件的出现对企业安全构成了重大挑战。

新型RingReaper恶意软件利用io_uring技术规避EDR检测攻击Linux服务器

FreeBuf网络安全行业门户
FreeBuf网络安全行业门户 · 2025-08-20T02:53:09Z

io_uring在Linux I/O中被视为“终极接口”,但Go语言对其集成持谨慎态度,主要因运行时模型的哲学冲突、安全问题及io_uring的快速演变。尽管社区曾寄予厚望,但实际应用中的挑战使Go未能采纳这一技术。

为何Go语言迟迟未能拥抱 io_uring?揭秘集成的三大核心困境

Tony Bai
Tony Bai · 2025-08-10T16:00:00Z
GSoC 2025:基于io_uring的GPU驱动I/O

GSoC 2025项目由Rodrigo Ceccato主导,旨在开发基于io_uring的GPU驱动I/O原型。该项目实现了GPU直接访问io_uring提交队列,提升了打印功能的效率,避免了通过共享邮箱的延迟。测试表明,GPU能够直接发起I/O请求,数据在设备间保持一致。未来计划将此功能整合进LLVM的gpu-libc,并扩展支持文件读写。

GSoC 2025:基于io_uring的GPU驱动I/O

The LLVM Project Blog
The LLVM Project Blog · 2025-08-04T00:00:00Z
分布式存储漫游指南 3: 单机磁盘 IO 的二三事 (异步 I/O 篇)

本文探讨了Linux平台的异步I/O,重点分析了io_uring和libaio的使用。异步I/O适用于高负载、低延迟的系统,但并不总能提升性能。文章还讨论了Go和Rust对磁盘I/O的处理,强调了异步I/O的复杂性和调试难度。

分布式存储漫游指南 3: 单机磁盘 IO 的二三事 (异步 I/O 篇)

Steins;Lab
Steins;Lab · 2025-07-12T09:59:15Z

网络安全研究人员发现新型Linux规避工具RingReaper,该工具利用io_uring内核特性绕过EDR系统,实施隐蔽攻击,减少可审计事件,完全隐身于现有安全监测中,提醒安全团队加强对io_uring的监控。

RingReaper:利用io_uring内核特性规避EDR检测的新型Linux工具

FreeBuf网络安全行业门户
FreeBuf网络安全行业门户 · 2025-07-07T04:29:46Z
  • <<
  • <
  • 1 (current)
  • 2
  • >
  • >>
👤 个人中心
在公众号发送验证码完成验证
登录验证
在本设备完成一次验证即可继续使用

完成下面两步后,将自动完成登录并继续当前操作。

1 关注公众号
小红花技术领袖公众号二维码
小红花技术领袖
如果当前 App 无法识别二维码,请在微信搜索并关注该公众号
2 发送验证码
在公众号对话中发送下面 4 位验证码
小红花技术领袖俱乐部
小红花·文摘:汇聚分发优质内容
小红花技术领袖俱乐部
Copyright © 2021-
粤ICP备2022094092号-1
公众号 小红花技术领袖俱乐部公众号二维码
视频号 小红花技术领袖俱乐部视频号二维码