[lustre-discuss] OSS Large File I/O using O_DIRECT
Andreas Dilger
adilger at thelustrecollective.com
Fri Jan 9 17:02:45 PST 2026
Hi John,
are you asking about the Hybrid IO feature in 2.16+ Lustre releases,
or something else?
There is a client-side "llite.*.hybrid_io" parameter that can enable/disable Hybrid IO on a client completely, and the
llite.*.hybrid_io_write_threshold_bytes and
llite.*.hybrid_io_read_threshold_bytes can be used to tune the
IO size threshold where IO changes between buffered and direct.
Applications can of course use open(O_DIRECT) to use DIO instead of
buffered IO.
As for the server-side non-buffered IO path, this is controlled by
the osd-ldiskfs.*.readcache_max_io_mb and .writethrough_max_io_mb
parameters, both default to 8 MiB. Note that flash (non-rotational)
OSTs disable read and write cache entirely by default, since NVMe
devices are typically fast enough to handle incoming IO.
I don't think there is any way for clients to fetch these parameters
directly, since they are more a property of the OST than the client.
Cheers, Andreas
On Jan 9, 2026, at 14:32, John Bauer <bauerj at iodoctors.com <mailto:bauerj at iodoctors.com>> wrote:
>
> Hello all,
> Is the a way to determine what size a client I/O request must be to trigger the OSS to use the Large File ( non-buffered ) I/O path? Is this configurable?
> Is there a way for a client-side application to trigger this behavior independent of the I/O size?
---
Andreas Dilger
Principal Lustre Architect
adilger at thelustrecollective.com
More information about the lustre-discuss
mailing list