Я понимаю, чтоfadvise
сообщит системе, что указанные файлы следует сохранить в кэше файловой системы (ОЗУ).
В чем смысл монтирования каталога в RAM-диск, если можно просто монтировать fadvise --willneed
каталог?
решение1
Давайте прочитаемстраница руководства для вызова базовой библиотеки:
Программы могут использовать posix_fadvise() для объявления о намерении получить доступ к данным файла по определенному шаблону в будущем, что позволяет ядру выполнять соответствующие оптимизации.
Theсоветприменяется к (не обязательно существующему) региону, начинающемуся скомпенсироватьи распространяется наленбайт (или до конца файла, еслиленравно 0) внутри файла, на который ссылаетсяфд.Theсоветне является обязательным; это всего лишь ожидание от имени приложения.
(Выделено мной.)
Все на RAM-диске гарантированно находится в RAM, по замыслу (хотя tmpfs можно выгрузить). Но fadvise носит лишь рекомендательный характер; ядру не требуется предварительно загружать данные в RAM или всегда хранить их в RAM.