首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >O_DIRECT对AIO_RAW

O_DIRECT对AIO_RAW
EN

Stack Overflow用户
提问于 2013-04-14 10:58:32
回答 1查看 702关注 0票数 2

当使用POSIX异步I/O时,使用O_DIRECTAIO_RAW有什么不同吗?或者我应该/我可以同时使用两者吗?我们正在开发一台NoSQL数据库服务器,并正在研究如何提高POSIX系统上异步I/O的效率。

开放(2)

O_DIRECT试图将I/O对此文件的缓存影响降到最低。一般来说,这会降低性能,但在特殊情况下很有用,例如应用程序自己进行缓存时。文件I/O直接对用户空间缓冲区进行/来自用户空间缓冲区。

aiocb(5)

在对原始设备分区执行异步I/O时,您可以在结构成员中设置aio_flags AIO_RAW标志位。设置AIO_RAW标志位时,异步I/O可能会更高效。

EN

回答 1

Stack Overflow用户

发布于 2018-02-13 17:48:38

提问者从未具体说明他们所支持的操作系统(一个链接到Linux手册页,另一个链接到上海合作组织),因此很难在没有猜测的情况下回答这个问题。

在编写本报告时,Linux不支持AIO_RAW,因为glibc的struct aiocb没有aio_flags成员(002fO.html ),内核中的AIO (不是POSIX)不支持AIO_RAW值。所以:

使用O_DIRECT和AIO_RAW有什么不同吗?或者我应该/我可以同时使用两者吗?

是的,因为并不是所有支持POSIX的操作系统(例如Linux)都允许您设置AIO_RAW,而且在某些情况下您肯定不能同时使用这两种操作系统。此外,在某些操作系统(如Linux )上,O_DIRECT可以在文件系统和设备上工作,而AIO_RAW只用于“原始设备”。从dt源代码来看,看起来AIO_RAW只支持HP和source,因此它在其他OSes中的应用可能有限。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15998294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档