与IO有关的几个概念

与IO有关的几个概念
2010-5-5

裸设备和文件系统是建立数据库文件的基础,这两个概念在DBA日常工作中常遇到,不展开来讲。

异步IO和同步IO,
英文为Asynchronous IO ,Synchronous IO。在当今的计算机世界来说,IO是最慢的组件(不是之一)。一个请求丢给IO后,如果需要IO确认才能做下一个事情,那就是同步IO,这种模式的IO最大的缺点是在等待时进程不能做其他任何事情,只能干等。如果想请求丢给IO后,不等待IO回复就去其他事情,那就是异步IO。为了提高系统吞吐量,选择用异步IO是不二的法门。
异步IO需要操作系统的支持。在AIX 6.0以后,可以用ioo -a|grep aio命令来检查是否配置了异步IO。

DIO和CIO:
使用裸设备的其中一个好处是可以绕过操作系统的缓存,减少数据在内存的冗余。这个一般是用裸设备来实现。现在除了裸设备,某些文件系统可以支持Direct IO,以避开读写缓冲。如果要使用Direct IO,需要指定Oracle参数“filesystemio_options”来设置支持Direct IO。但是要注意,不同OS中的不同文件系统对Direct IO的支持也不同。
CIO不是头衔名称,IT部门的老大,仅仅是个在AIX 5.2之后操作系统中文件系统挂载可以选用选项之一。在AIX的JFS2文件系统上,如果“filesystemio_options”为“SETALL”或者为“ASYNCH”,则会支持Concurrent IO。CIO比DIO的性能更高,因为JFS2的CIO支持多个进程同时对一个文件进行读写。
在Oracle10G前,如果要使用CIO特性,那需要文件系统带CIO选项来挂载。在10G后,只要在Oracle初始化参数文件中使用“filesystemio_options = setall” 和 “disk_async_io = true”就可以。

-THE END-

 

请使用浏览器的分享功能分享到微信等