Я работаю над приложением, которое последовательно пишет большой файл (и вообще не читает), и я бы хотел использовать posix_fadvise()
для оптимизации поведения файловой системы.
Описание функции в manpage предполагает, что наиболее подходящей стратегией будет POSIX_FADV_SEQUENTIAL
. Однако в описании реализации Linux сомневается, что:
В Linux
POSIX_FADV_NORMAL
устанавливает для окна readahead значение по умолчанию для поддерживающего устройства;POSIX_FADV_SEQUENTIAL
удваивает этот размер, аPOSIX_FADV_RANDOM
полностью отключает readahead файла.
Поскольку я только пишу данные (возможно, перезаписываю файлы), я не ожидаю никакого чтения. Должен ли я придерживаться моего POSIX_FADV_SEQUENTIAL
или скорее использовать POSIX_FADV_RANDOM
, чтобы отключить его?
Как насчет других параметров, например POSIX_FADV_NOREUSE
? Или, возможно, не использовать posix_fadvise()
для записи вообще?