OpenZFS Merges Support For Direct IO
The OpenZFS project has merged DirectIO (O_DIRECT) support for the ZFS file-system to bypass the ARC for reads and writes.
The Direct IO support for OpenZFS dates back to a pull request started back in 2020 by Brian Atkinson. The pull request explains:
This Direct IO support should be a nice boost to performance for NVMe storage devices.
After more than four years of the pull request being opened, last week it was finally merged to the OpenZFS codebase.
The Direct IO support for OpenZFS dates back to a pull request started back in 2020 by Brian Atkinson. The pull request explains:
"By adding Direct IO support to ZFS, the ARC can be bypassed when issuing reads/writes. There are certain cases where caching data in the ARC can decrease overall performance. In particular the performance of ZPool's composed of NVMe devices displayed poor read/write performance due to the extra overhead of memcpy's issued to the ARC.
There are also cases where caching in the ARC may not make sense such as when data will not be referenced later. By using the O_DIRECT flag, unnecessary data copies to the ARC can be avoided."
This Direct IO support should be a nice boost to performance for NVMe storage devices.
After more than four years of the pull request being opened, last week it was finally merged to the OpenZFS codebase.
34 Comments