使用 POSIX 异步 I/O 时,使用O_DIRECT
和之间有什么区别AIO_RAW
吗?或者我应该/我可以同时使用两者吗?我们正在开发一个 NoSQL 数据库服务器,并且正在寻找在 POSIX 系统上提高异步 I/O 效率的方法。
O_DIRECT尽量减少进出该文件的 I/O 的缓存影响。一般来说,这会降低性能,但在特殊情况下很有用,例如当应用程序进行自己的缓存时。文件 I/O 直接与用户空间缓冲区进行。
当对原始设备分区执行异步 I/O 时,您可以在 aio_flags 结构成员中设置AIO_RAW标志位。当设置AIO_RAW标志位时,异步 I/O 可能更有效。