I am working on an application which does sequentially write a large file (and does not read at all), and I would like to use posix_fadvise()
to optimize the filesystem behavior.
The function description in the manpage suggests that the most appropriate strategy would be POSIX_FADV_SEQUENTIAL
. However, the Linux implementation description doubts that:
Under Linux,
POSIX_FADV_NORMAL
sets the readahead window to the default size for the backing device;POSIX_FADV_SEQUENTIAL
doubles this size, andPOSIX_FADV_RANDOM
disables file readahead entirely.
As I'm only writing data (overwriting files possibly too), I don't expect any readahead. Should I then stick with my POSIX_FADV_SEQUENTIAL
or rather use POSIX_FADV_RANDOM
to disable it?
How about other options, such as POSIX_FADV_NOREUSE
? Or maybe do not use posix_fadvise()
for writing at all?