Какова цель виртуального диска, когда существует fadvise?

Я понимаю, что fadvise сообщит системе, что указанные файлы должны храниться в кеше файловой системы (RAM).

Какова цель монтирования каталога на виртуальном диске, когда вы можете просто fadvise --willneed каталог?

1 ответ

Решение

Давайте прочитаем страницу руководства для основного вызова библиотеки:

Программы могут использовать posix_fadvise(), чтобы объявить о намерении получить доступ к данным файла по определенному шаблону в будущем, что позволит ядру выполнить соответствующую оптимизацию.

Рекомендация применяется к (не обязательно существующей) области, начинающейся со смещения и продолжающейся для len байтов (или до конца файла, если len равно 0) в файле, указанном fd. Совет не является обязательным; это всего лишь ожидание от имени приложения.

(Акцент добавлен.)

Все на RAM-диске гарантированно находится в RAM, хотя tmpfs можно поменять местами. Но фадвизе просто консультативная; ядру не требуется предварительно загружать данные в ОЗУ и не всегда хранить их в ОЗУ.

Другие вопросы по тегам