阅读AIX的手册,看到关于 Direct I/O 的一些描述:
直接 I/O 与正常高速缓存的 I/O
通常,JFS 或 JFS2 将文件页面高速缓存在内核存储器中。当应用程序执行文件读取请求时,如果文件页面不在内存中,则 JFS 或 JFS2 将数据从磁盘读取到文件高速缓存,然后将数据从文件高速缓存复制到用户缓冲区。对于应用程序的写操作,仅将数据从用户的缓冲区复制到高速缓存。以后执行对磁盘的实际写入。
当高速缓存的使用率比较高时,这种高速缓存策略可以发挥完全的效用。它还启用从头读取、从后写入的策略。最后,它使文件写操作异步,允许应用程序继续处理,而不是等待 I/O 请求完成。
直接 I/O 是一种可选的高速缓存策略,它使得文件数据直接在磁盘和用户缓冲区之间传送。文件的直接 I/O 在功能上等同于设备的原始 I/O。应用程序可以在 JFS 或 JFS2 上使用直接 I/O。