linux aio
2015-09-19 18:44
495 查看
前几天nginx的0.8.x正式成为stable,然后看了下代码,发现0.8加入了linux native aio的支持,我们知道在linux下有两种aio,一种是glibc实现的aio,这个比较烂,它是直接在用户空间用pthread进行模拟的。还有一种就是内核实现的aio,这些系统调用是以io_xxx开始的,而在nginx的0.8 中使用的是后一种,下面我们简称后一种为native aio.这里注意native aio只支持direct io。
而native aio的优点就是能够同时提交多个io请求给内核,然后直接由内核的io调度算法去处理这些请求(direct io),这样的话,内核就有可能执行一些合并,优化。
native aio包含下面几个系统调用:
要使用他们必须安装libaio这个库,这个库也就是简单的封装了上面的几个系统调用,而nginx中没有使用libaio这个库,而是直接使用syscall来调用系统调用。现在先大概介绍下这几个api,io_setup用于建立一个aio的环境,io_cancel用于删除一个提交的句柄的任务。io_getevents用于得到任务执行完毕之后的事件信息。io_submit用于提交任务。详细的api介绍去看man手册。
参考 http://www.pagefault.info/?p=76
http://blog.csdn.net/wudongxu/article/details/8647501
redo
http://blog.csdn.net/yuanrxdu/article/details/42430187
而native aio的优点就是能够同时提交多个io请求给内核,然后直接由内核的io调度算法去处理这些请求(direct io),这样的话,内核就有可能执行一些合并,优化。
native aio包含下面几个系统调用:
参考 http://www.pagefault.info/?p=76
Direct IO
http://blog.chinaunix.net/uid-20378444-id-2975069.htmlhttp://blog.csdn.net/wudongxu/article/details/8647501
redo
http://blog.csdn.net/yuanrxdu/article/details/42430187
相关文章推荐
- CentOS6.3文字界面下使用yum安装Gnome桌面并解决乱码问题
- Linux系统cp:omitting directory`XXX'问题解决
- [linux]linux普通用户安装rpm软件
- VLC for Linux 无法播放FLV视频
- Linux在iptables教程基本应用防火墙
- linux install kernel headers
- Linux系统管理之——软件包管理
- Linux内核:seek机制
- CentOS 7 64bit系统上编译安装PHP 5.6.13
- 在CentOS7上安装MySQL Workbench
- Linux修改SSH端口号和禁止客户端远程root登录
- VMware Workstation中安装64位linux
- linux下arm汇编注释符
- 由linux下的多进程编程引发的关于进程间隔离的思考
- Linux操作系统上的文件共享
- 基于kickstart定制自动化安装的linux镜像系统
- 基于busybox和LFS的linux系统定制
- linxu 自启动的管理
- Linux上安装weblogic
- Linux内核:poll机制