Есть ли какая-либо команда для чтения и загрузки файла в кеш диска Linux? Это последняя версия системы debian.
Я знаю, что в общем случае лучше дать ядру Linux понять это. Но у меня есть крайний случай. У меня есть ноутбук с установленным директором NFS, и я хочу воспроизвести длинный видеофайл, но я не хочу, чтобы проблема с сетью прерывала воспроизведение. Я знаю, что этот (большой) файл будет полностью прочитан позже. Я знаю, что во время воспроизведения этого видео (на самом деле) больше ничего не будет запущено. Для хранения этого файла достаточно свободной памяти.
(Я знаю, что могу просто скопировать файл в новую файловую систему tmpfs, но мне любопытно, есть ли еще более короткий способ сделать это)
Небольшая программа, которая mmap()
отредактировал файл с MAP_LOCKED
набор флагов сделает свое дело. Вам нужно будет запустить эту программу от имени пользователя root или пользователя с RLIMIT_MEMLOCK
значение больше, чем размер файла, который вы хотите сопоставить.
Так как SaveTheRbtz упомянул, vmtouch имеет встроенную возможность. На странице руководства предполагается, что vmtouch -l /some/file
сделает свое дело.
Если вы действительно так строго контролируете локальную среду, простой кошка $ файл> / dev / null должно быть достаточно. Это довольно недетерминировано, когда вытеснение кеша удаляет этот файл, но если у вас много оперативной памяти и никто не использует ее, его следует сохранить.
Если есть липкий и детерминированный способ сохранить файл в кеше - не знаю ...