Linux内核正在努力实现快速高效的I/O

栏目: 服务器 · Linux · 发布时间: 6年前

内容简介:Linux内核在情人节得到了一枚新的戒指……io_uring。io_uring的目的是在Linux上提供更快、更高效的I/O操作,并且应该在下一个内核周期中提供。io_uring的Linux块维护人员和开发人员,Facebook的Jens Axboe在Git上将新接口排队过夜进入Io_uring比Linux的AIO异步I/O代码要高效得多,它支持高效的缓冲异步I/O,甚至可以在不执行轮询I/O系统调用的情况下执行I/O,以及其他效率增强。

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


以上所述就是小编给大家介绍的《Linux内核正在努力实现快速高效的I/O》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

编程珠玑

编程珠玑

Jon Bentley / 黄倩、钱丽艳 / 人民邮电出版社 / 2008-10 / 39.00元

本书是计算机科学方面的经典名著。书的内容围绕程序设计人员面对的一系列实际问题展开。作者Jon Bentley 以其独有的洞察力和创造力,引导读者理解这些问题并学会解决方法,而这些正是程序员实际编程生涯中至关重要的。本书的特色是通过一些精心设计的有趣而又颇具指导意义的程序,对实用程序设计技巧及基本设计原则进行了透彻而睿智的描述,为复杂的编程问题提供了清晰而完备的解决思路。本书对各个层次的程序员都具有......一起来看看 《编程珠玑》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

URL 编码/解码
URL 编码/解码

URL 编码/解码