AIO

AIO 的全称为 Asynchronous I/O,即异步 I/O。在 AIO 的工作模式下,应用程序向操作系统发起 I/O 请求(读 / 写)以后,不必等 I/O 完成,即可发起新的 I/O 请求。通过这种方法,可以提示提升 I/O 吞吐量和性能。从 AIX5L 起,AIX 支持两种 AIO:legacy AIO 和 POSIX AIO。AIO 既支持文件系统也支持裸设备。

DIO

AIO 的全称为 Direct I/O,即直接 I/O。在 DIO 的工作模式下,数据直接从磁盘传送到应用的缓存,而不经过文件的 buffer cache。DIO 是 JFS 文件系统的一个选项,对于一些应用,如 Oracle 数据库,它本身有自己的缓存,如果再使用文件系统缓存,反而会造成性能的下降,在这种情况下,使用 DIO 会提升一定的性能。但是,当应用有大量的顺序读 I/O 的时候,使用 DIO 的方式由于缺少读缓存,会造成一定的性能下降。

CIO

CIO 的全称为 Concurrent I/O 即并发 I/O。CIO 的工作模式是建立在 DIO 模式基础之上的。在 JFS2 的环境下,如果应用需要绕过文件系统缓存,经常会使用 CIO 模式来替代 DIO 模式。在 CIO 的工作模式下,数据会从磁盘直接传递到应用的缓存。从 AIX 5.2.10 开始,JFS2 支持 CIO 选项。

我们知道,在文件系统中,为了保证数据和文件系统的一致性,需要使用 inode lock。Inode lock 保证一个文件在某一时刻,只有一个写 I/O,并且为了避免读到 stale 的数据,写的时候并发读也是不被允许的。

而在 CIO 的工作模式下,JFS2 会绕过 inode lock,从而实现多个线程可以同时读写一个共享文件。而在这种情况下,数据的一致性就需要应用或数据库来提供,如 DB2 Pure Scale、oracle RAC。

AIO、DIO、CIO 的区别

AIO 在 AIX6.1 中默认是打开的,它既支持文件系统,也支持裸设备。而 DIO 和 CIO 是文件系统的一个选项。我们可以在 mount 文件系统的时候,进行设置,执行命令如下 :

 #mount -o dio /weixinyu #mount -o cio /weixinyu 

对于已经挂载的文件系统,也可以修改其 I/O 方式 :

 # chfs -a options=rw,dio /weixinyu # chfs -a options=rw,aio /weixinyu

DIO 与 CIO 本质上并不矛盾,均属于“绕过文件系统缓存”的 I/O 方式。不同的是,在 DIO 的工作模式下,文件系统中的数据一致性是通过 inode lock 来实现的;而 CIO 为了提高文件的并发读写性,会绕过 inode lock,让应用来提供文件一致性锁。

AIO 对于裸设备的支持与 CIO 对文件系统支持的方式类似,都是通过“FastPath”来实现。前者受内核参数 fastpath 控制,后者受内核参数 fsfastpath 控制。在 AIX6.1 中,这两个参数默认都是设置为 1。

 # ioo -F -a |grep -i path aio_fastpath = 1aio_fsfastpath = 1

三种 I/O 方式的逻辑关系如下图:

AIX 操作系统中AIO、DIO、CIO 的相关概念介绍 (二)相关推荐

  1. AIX 操作系统中AIO、DIO、CIO 的相关概念介绍 (一)

    aio.cio.dio无论关于操作系统还是数据库中都经常提到的概念,在IBM的官方网站可以查到相关详细的资料这里我只简单的介绍下,便于大家平时看资料时候更好理解相关概念 AIO CIO DIO < ...

  2. AIX AIO, DIO, CIO

    AIO, DIO, CIO 这些名词都用于数据(文件)访问的模式,既应用程序用什么方案实现对文件的读写. AIO AIO 的全称为 Asynchronous I/O,既异步 I/O.在 AIO 的工作 ...

  3. AIX 操作系统日常维护须知

    AIX 操作系统日常维护须知目 录1. AIX 常用命令简介2. 文档编辑命令3. 如何查看系统出错信息4. 文件系统的操作5. 如何为系统做备份一.AIX 常用命令简介 1. 关机shutdown ...

  4. AIX 系统中 PVID 的含义与作用

    网址: http://www.eygle.com/digest/2008/06/aix_pvid.html Pvid是aix系统中的ODM LVM用于识别PV的序列号,操作系统通过pvid来识别pv, ...

  5. AIX操作系统版本小知识(转载)

    原地址:http://blog.itpub.net/501889/viewspace-1063490/ 采集地址:https://blog.csdn.net/chaos436/article/deta ...

  6. 小型机oracle命令,IBM 小型机基本知识及AIX操作系统基本命令.doc

    IBM 小型机基本知识及AIX操作系统基本命令 UNIX(AIX)系统常用命令 新客网 XKER.COM 时间:2008-02-15来源:新客网Unix系统? 佚名 点击:次 [新客网aix教程]AI ...

  7. 操作系统中的概念详解

    文章目录 前言 一.操作系统的基础概念介绍 1.并行与并发 2.用户态与内核态 3.执行流 二.内存管理 1.Java程序员眼中的内存 2.线性地址和物理地址 3.进程间通信 三.研究操作系统实现时, ...

  8. linux查看光纤卡微码版本,各操作系统中查看HBA 光纤卡 WWN 号的方法汇总

    各操作系统中查看HBA 光纤卡 WWN 号的方法汇总 我们在日常的工作中经常需要查询HBA卡的WWN号,可是客户的HBA卡已经安装到服务器,且也没有交换机,在存储上看到很多WWN号,不知道主机对应的H ...

  9. linux smit工具,Aix操作系统SMIT工具

    我们来讲解下Aix操作系统SMIT工具的知识.Aix操作系统SMIT工具是UNIX下的一个管理工具,使用户得以通过菜单驱动方式方便地使用AIX,无须牢记UNIX复杂的命令行和参数,使日常系统管理工作变 ...

最新文章

  1. Django + DRF + Elasticsearch 实现搜索功能
  2. C++11thread之detach()与join()的函数对比
  3. 【剑指offer】_07 矩形覆盖
  4. Mysql1 晨考题
  5. 一群参与境内外赌博网站的开发的程序员被抓,网友:切勿面向监狱编程...
  6. JavaScript--函数
  7. ora 27102 linux,ORA-27102: out of memory Linux-x86_64 Error: 12: Cannot allocate memory
  8. Vue调用本地缓存(监视数据变更)
  9. C#基础回顾:正则表达式
  10. DataGrid小扩展
  11. 操作系统课程设计之磁盘调度系统的设计与实现c语言
  12. python pandas 教程下载_如何用Python处理Excel?Pandas视频教程官方文档来啦~
  13. Linux设置终端快捷键
  14. “管中窥豹”,MyCAT的基因缺陷
  15. Cutting(思维)
  16. 猎聘网2017年校园招聘研发类岗位笔试题
  17. 华为VPLS配置案例S6720
  18. 简单易懂之什么是重排和重绘?
  19. 宏定义(无参,有参,宏函数)(详细介绍)
  20. rk3328 Android8.1 usb otg host和device切换

热门文章

  1. 基于ESP32的竞赛裁判系统功能调试-与微机通讯
  2. 电抗电路的串并联的转换
  3. linux网站配置文件,Linux网站服务器配置文件
  4. 创建个人网站所需php书籍,PHP个人网站架设连环讲(三)
  5. Kernel oops panic 调试 (未完待续)
  6. fastdfs安装_FastDFS 安装部署文档
  7. 淘宝精品案例JS、jQuery
  8. php生成背景并加字,PHP给图片添加文字水印实例
  9. 【 FPGA 】状态机的模型之Mealy型状态机
  10. 【 C 】彻底学会字符串常量