Назад | Перейти на главную страницу

Подскажите ядру linux положить файл в кеш диска?

Есть ли какая-либо команда для чтения и загрузки файла в кеш диска Linux? Это последняя версия системы debian.

Я знаю, что в общем случае лучше дать ядру Linux понять это. Но у меня есть крайний случай. У меня есть ноутбук с установленным директором NFS, и я хочу воспроизвести длинный видеофайл, но я не хочу, чтобы проблема с сетью прерывала воспроизведение. Я знаю, что этот (большой) файл будет полностью прочитан позже. Я знаю, что во время воспроизведения этого видео (на самом деле) больше ничего не будет запущено. Для хранения этого файла достаточно свободной памяти.

(Я знаю, что могу просто скопировать файл в новую файловую систему tmpfs, но мне любопытно, есть ли еще более короткий способ сделать это)

Небольшая программа, которая mmap()отредактировал файл с MAP_LOCKED набор флагов сделает свое дело. Вам нужно будет запустить эту программу от имени пользователя root или пользователя с RLIMIT_MEMLOCK значение больше, чем размер файла, который вы хотите сопоставить.

Так как SaveTheRbtz упомянул, vmtouch имеет встроенную возможность. На странице руководства предполагается, что vmtouch -l /some/file сделает свое дело.

Если вы действительно так строго контролируете локальную среду, простой кошка $ файл> / dev / null должно быть достаточно. Это довольно недетерминировано, когда вытеснение кеша удаляет этот файл, но если у вас много оперативной памяти и никто не использует ее, его следует сохранить.

Если есть липкий и детерминированный способ сохранить файл в кеше - не знаю ...