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