Direct I/O,Synchronous I/O的概念
阿新 • • 發佈:2018-04-10
com needed spa lin ons dia immediate storage oid
Direct I/O概念:
Direct I/O is a way to avoid entire caching layer in the kernel and send the I/O directly to the disk.
想要使用direct io的模式,可以這樣做:
Opens files with O_DIRECT flag.
Synchronous I/O概念:
Synchronous I/O is any I/O (system I/O with or without O_DIRECT, or stream I/O) performed to a file descriptor that was opened using the O_SYNC
or O_DSYNC flags.
幾個Flag的區別:
O_DIRECT | I/O operations performed against files opened with O_DIRECT bypass the kernel‘s page cache, writing directly to the storage. |
O_SYNC | File data and all file metadata are written synchronously to disk. |
O_DSYNC | Only file data and metadata needed to access the file data are written synchronously to disk. Metadata that is not required for retrieving the data of the file may not be written immediately. |
參考資料
===============
What is direct I/O anyway?
http://www.alexonlinux.com/what-is-direct-io-anyway
Ensuring data reaches disk
https://lwn.net/Articles/457667/
Direct I/O,Synchronous I/O的概念