Linux内核正在努力实现快速高效的I/O
2019-02-16 00:01
417 查看
Linux内核在情人节得到了一枚新的戒指……io_uring。io_uring的目的是在Linux上提供更快、更高效的I/O操作,并且应该在下一个内核周期中提供。
io_uring的Linux块维护人员和开发人员,Facebook的Jens Axboe在Git上将新接口排队过夜进入linux-block/for-next。io_uring接口提供在应用程序和内核之间共享的提交和完成队列环,以避免多余的副本。新接口只有两个新的系统调用(io_uring_setup和io_uring_enter)来处理I/O, Axboe之前曾在“aioring”这个名称下使用此代码。
Io_uring比Linux的AIO异步I/O代码要高效得多,它支持高效的缓冲异步I/O,甚至可以在不执行轮询I/O系统调用的情况下执行I/O,以及其他效率增强。接口补丁继续解释:
- 通过此设置,可以通过单个系统调用执行异步IO。未来的发展将使用这个界面启用轮询IO,并进行轮询提交。后者将使应用程序能够在不进行任何系统调用的情况下执行IO。
- 对于IRQ驱动的IO,如果应用程序想要等待它们发生,则只需要进入内核以进行完成。
- 每个io_uring都有一个工作队列支持,以支持缓冲的异步IO。如果命令需要在设备端等待IO,我们将只向异步上下文发送。可以在页面缓存中直接访问的任何数据都是内联完成的。这避免了常见线程池的缓慢问题,因为缓存数据的访问速度与同步接口一样快。
- io_uring的设计理念似乎是为Linux提供快速高效的I/O。
围绕新接口构建的用户空间库存在liburing。Axboe的FIO基准也已经进行了调整,以支持io_uring。这应该是Linux 5.1中另一个值得兴奋的特性。
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx
本文永久更新链接地址:https://www.linuxidc.com/Linux/2019-02/156912.htm
相关文章推荐
- 快速实现简单高效并可以灵活配置的URL重写方案(附源代码)
- 快速实现简单高效并可以灵活配置的URL重写方案(附源代码)
- 《Linux 内核设计与实现》(LKD)第三版译者序
- 快速实现简单高效并可以灵活配置的URL重写方案(附源代码)
- linux-2.6内核模块引用计数的实现
- Linux 系统内核空间与用户空间通信的实现与分析
- 快速实现配置Windows客户端访问在linux平台上所搭建的Samba服务器&&使用swat软件
- Linux 系统内核空间与用户空间通信的实现与分析
- Linux下Poactor模式的高效实现
- 关于linux内核调试的实现
- linux-2.6内核模块引用计数的实现 zz
- Linux0.11内核--汇编代码实现C函数
- linux路由内核实现分析(二)---FIB相关数据结构
- 【转】深入剖析linux内核的定时器实现机制-动态刷新维护
- dm365 linux2.6.32内核实现656传输驱动lcd
- Linux 系统内核空间与用户空间通信的实现与分析
- Linux 系统内核空间与用户空间通信的实现与分析
- Linux内核设计与实现 之一 Linux内核简介
- linux-2.6.26内核中ARM中断实现详解(3)
- 【嵌入式Linux学习七步曲之第四篇 Linux内核移植】用BDI2000快速定位PPC Linux内核Uncompressing Kernel Image ... OK后无输出问题