Если бы я был в MMAP (), очень большой файл (для доступа только для чтения) был бы чтение ядром после того, как ошибка страницы указывает на то, что страница еще не кэширована в оперативной памяти. Страницы будут оставаться кэшированными в памяти - до тех пор, пока, по всейшени, все остальные страницы доступной оперативной памяти не содержат недавно кэшированной страницы некоторых других данных - когда требуется новая страница ОЗУ. Страницы в большом файле могут быть рассчитаны (при умеренных вычислительных затратах - скажем, 10 мс каждый) - Итак ... нет строгого требования иметь большой файл предварительных данных. Поскольку каждая страница сначала требуется, будет использована страница оперативной памяти для удержания вычисленного контента. На слегка загруженном хосте это обеспечит производительность кэширования, сравнимые с использованием mmap () против файла. На сильно загруженном хосте (или хосте с меньшим количеством страниц ОЗУ, чем на карту страниц виртуальной памяти), я бы столкнулся с проблемами - с голодом с оперативной памятью. Очевидно, что процесс пространства пользователя потребует уведомления, когда это произойдет ... для того, чтобы он мог переписывать содержимое страницы, если/когда/когда потребуется снова в будущем. Я знаю о Madvise (2) - но это, похоже, не поддерживает этот вариант использования. Я мог бы исправить произвольное (относительно небольшое) количество страниц виртуальной памяти-и управлять этикетками LRU на уровне приложения-но я бы предпочел, чтобы ядро определить количество оперативной памяти, которое можно предоставить для моего процесса для целей кэширования ... на основе всего хоста ... в контексте спроса от других процессов. без голода других процессов памяти ... и без привыкания к использованию предварительно вычисляемого файла?
Подробнее здесь: https://stackoverflow.com/questions/797 ... -processes
Linux: низкоуровневое управление виртуальной памятью - сотрудничество между процессами ⇐ Linux
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Linux: низкоуровневое управление виртуальной памятью - сотрудничество между процессами
Anonymous » » в форуме Linux - 0 Ответы
- 31 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Linux: низкоуровневое управление виртуальной памятью - сотрудничество между процессами
Anonymous » » в форуме Linux - 0 Ответы
- 4 Просмотры
-
Последнее сообщение Anonymous
-