对io_uring的理解(1) 一、先搞懂背景传统 Linux 文件 IO 有多慢Linux 传统读写文件/磁盘有两种模式都有巨大开销阻塞IOread/write 调用 read() 时线程直接卡住内核和用户态来回切换系统调用频繁切换CPU成本极高。异步IO aiolibaio 早期Linux异步IO限制多只能支持裸磁盘不支持普通文件、管道、socketAPI难用坑很多。核心痛点每次IO操作都要用户态 ↔ 内核态来回切换切换很贵。二、io_uring 核心思路减少切换批量干活io_uring 是 Linux 5.1 正式引入的新一代高性能异步IO框架核心设计一句话用户程序和内核共用两块环形队列内存共享不用频繁拷贝数据、不用频繁系统调用一次提交一批IO请求一次拿回一批结果。两块环形缓冲区ring 环形队列名字由来SQ 提交队列Submission Queue 用户程序把要做的IO任务读文件、写文件、读写网络、缓存刷新等塞进去。CQ 完成队列Completion Queue 内核处理完IO后把完成结果塞回来用户程序从这里拿返回状态。两块队列是内核、用户态共享同一片内存不需要每次操作都拷贝数据。三、完整工作流程超通俗程序初始化创建 io_uring内核分配共享内存生成 SQ/CQ 环形队列用户程序批量往 SQ 填入一堆IO任务读10个文件、发10条网络数据只调用一次系统调用通知内核“队列里有活快去处理”内核在后台并发处理所有IO请求完成后把结果写入CQ用户程序一次系统调用从CQ取出所有IO完成结果循环复用队列不用反复创建销毁任务。对比传统 read/write 每一次读写 一次系统调用1000次IO就要1000次切换 io_uring1000次IO只需要2次系统调用提交一次、取结果一次性能差距巨大。四、io_uring 能干哪些事覆盖极广碾压老aio不只是磁盘文件读写几乎所有IO操作都支持普通文件读写、随机读写、大文件批量读写socket 网络收发TCP/UDP管道、字符设备文件操作open、stat、unlink、fsync 刷新缓存轮询模式、零拷贝IO五、关键优势系统调用极少CPU开销暴跌 批量提交、批量回收大量减少用户/内核切换高并发场景CPU占用大幅下降全能无老式aio的限制 libaio 只能裸盘io_uring 普通文件、网络、目录操作全都支持纯异步线程不阻塞 发起IO时线程不会卡住可以同时提交上万IO并发拉满内存拷贝少 SQ/CQ 共享内存不需要内核、用户态来回复制任务描述支持高级特性轮询IOpolling完全不中断CPU极致低延迟固定缓冲区减少页表映射开销链式IO、批量文件打开、取消IO任务六、适用场景只要追求高IO并发、低延迟的软件现在基本都在用 io_uring数据库RocksDB、MySQL、PostgreSQL 新版本开启 io_uring 提升吞吐高性能存储、对象存储服务高性能网络代理、游戏服务器高性能日志、消息队列Rust/Go/C 高性能IO框架底层如 tokio、uring-rs。七、举个生活化类比把内核当成仓库管理员你的程序是老板传统read/write老板每要一件货单独跑一趟仓库喊管理员拿来回跑累死libaio仓库只放硬盘货物快递、文件不给拿限制大io_uring老板拿一张共享清单环形队列一次性写下100件要拿/存放的货只喊管理员一次管理员全部处理完把结果写回同一张清单老板再看一次清单就行不用来回跑。八、总结io_uring Linux 官方新一代、全能、高性能异步IO接口通过共享环形队列大幅减少内核切换开销解决了老式同步IO慢、旧异步aio功能残缺的问题是现在高并发IO程序的底层标配。0voice · GitHub

相关新闻

最新新闻

OpenClaw OAuth接入ChatGPT Plus:合规授权与安全网关实践

OpenClaw OAuth接入ChatGPT Plus:合规授权与安全网关实践

1. 项目本质与核心价值再定义:这不是“免API Key”,而是OAuth协议的合规落地实践看到标题里“无需 API Key,直接使用 ChatGPT Plus 授权登录”,很多人的第一反应是“又一个免密登录的野路子”——这恰恰是最大的认知陷阱。我用 Op…

2026/7/11 3:30:42
AI写代码不加import?Python工程落地的致命陷阱

AI写代码不加import?Python工程落地的致命陷阱

1. 项目概述:当编程辅助工具连基础工程规范都守不住你有没有过这种体验:深夜改一个爬虫脚本,就为了把耗时的解析逻辑挪到子线程里跑,避免阻塞主流程;你认真写好 prompt,把文件路径、函数名、改造目标全列清…

2026/7/11 3:30:42
视频怎么转 MP4?6 款工具完整实操教程,兼容 20 余种视频格式

视频怎么转 MP4?6 款工具完整实操教程,兼容 20 余种视频格式

MKV、MOV、AVI、RMVB、MTS 等各式视频无法投屏、上传、手机打不开?MP4 是全设备通用标准格式,本篇整理 6 套成熟转换方案,覆盖国产专用转换器、开源免费工具、剪辑软件内置导出功能,支持批量转换,兼顾新手简易操作与专…

2026/7/11 3:30:42
VSCode 隐藏快捷键|90%程序员都没用到的提速技巧

VSCode 隐藏快捷键|90%程序员都没用到的提速技巧

高手和普通用户的差距,往往就在这几个快捷键之间。Visual Studio Code 已经是全球最流行的代码编辑器,几乎人人都在用。但大多数人只用了它 20% 的功能,尤其是快捷键这块——CtrlC/V 走天下,剩下的全靠鼠标点。今天就来挖一挖那些…

2026/7/11 3:30:42
CC GUI 插件:在 IDEA 中使用 CodeX

CC GUI 插件:在 IDEA 中使用 CodeX

CC GUI 是一款开源免费(MIT 协议)的 JetBrains IDE 插件,能将 Claude Code 和 OpenAI Codex 的能力以可视化界面集成到 IDEA 中。以下是完整的安装配置教程。1、前期准备:1.1、CC GUI 要求 IDEA 2024.2 及以上版本1.2、确保 Node.…

2026/7/11 3:30:42
终极网站永久保存方案:WebSite-Downloader完整离线下载指南

终极网站永久保存方案:WebSite-Downloader完整离线下载指南

终极网站永久保存方案:WebSite-Downloader完整离线下载指南 【免费下载链接】WebSite-Downloader A website downloader written with Python 项目地址: https://gitcode.com/gh_mirrors/web/WebSite-Downloader 你是否曾精心收藏的技术文档突然无法访问&…

2026/7/11 3:25:42

月新闻