Если бы я был в MMAP (), очень большой файл (для доступа только для чтения) был бы чтение ядром после того, как ошибка страницы указывает на то, что страница еще не кэширована в оперативной памяти. Страницы будут оставаться кэшированными в памяти - до тех пор, пока, по всейшени, все остальные страницы доступной оперативной памяти не содержат недавно кэшированной страницы некоторых других данных - когда требуется новая страница ОЗУ. Страницы в большом файле могут быть рассчитаны (при умеренных вычислительных затратах - скажем, 10 мс каждый) - Итак ... нет строгого требования иметь большой файл предварительных данных. Поскольку каждая страница сначала требуется, будет использована страница оперативной памяти для удержания вычисленного контента. На слегка загруженном хосте это обеспечит производительность кэширования, сравнимые с использованием mmap () против файла. На сильно загруженном хосте (или хосте с меньшим количеством страниц ОЗУ, чем на карту страниц виртуальной памяти), я бы столкнулся с проблемами - с голодом с оперативной памятью. Очевидно, что процесс пространства пользователя потребует уведомления, когда это произойдет ... для того, чтобы он мог переписывать содержимое страницы, если/когда/когда потребуется снова в будущем. Я знаю о Madvise (2) - но это, похоже, не поддерживает этот вариант использования. Я мог бы исправить произвольное (относительно небольшое) количество страниц виртуальной памяти-и управлять этикетками LRU на уровне приложения-но я бы предпочел, чтобы ядро определить количество оперативной памяти, которое можно предоставить для моего процесса для целей кэширования ... на основе всего хоста ... в контексте спроса от других процессов. без голода других процессов памяти ... и без привыкания к использованию предварительно вычисляемого файла?
Подробнее здесь: https://stackoverflow.com/questions/797 ... -processes
Linux: низкоуровневое управление виртуальной памятью - сотрудничество между процессами ⇐ Linux
1752776317
Anonymous
Если бы я был в MMAP (), очень большой файл (для доступа только для чтения) был бы чтение ядром после того, как ошибка страницы указывает на то, что страница еще не кэширована в оперативной памяти. Страницы будут оставаться кэшированными в памяти - до тех пор, пока, по всейшени, все остальные страницы доступной оперативной памяти не содержат недавно кэшированной страницы некоторых других данных - когда требуется новая страница ОЗУ. Страницы в большом файле могут быть рассчитаны (при умеренных вычислительных затратах - скажем, 10 мс каждый) - Итак ... нет строгого требования иметь большой файл предварительных данных. Поскольку каждая страница сначала требуется, будет использована страница оперативной памяти для удержания вычисленного контента. На слегка загруженном хосте это обеспечит производительность кэширования, сравнимые с использованием mmap () против файла. На сильно загруженном хосте (или хосте с меньшим количеством страниц ОЗУ, чем на карту страниц виртуальной памяти), я бы столкнулся с проблемами - с голодом с оперативной памятью. Очевидно, что процесс пространства пользователя потребует уведомления, когда это произойдет ... для того, чтобы он мог переписывать содержимое страницы, если/когда/когда потребуется снова в будущем. Я знаю о Madvise (2) - но это, похоже, не поддерживает этот вариант использования. Я мог бы исправить произвольное (относительно небольшое) количество страниц виртуальной памяти-и управлять этикетками LRU на уровне приложения-но я бы предпочел, чтобы ядро определить количество оперативной памяти, которое можно предоставить для моего процесса для целей кэширования ... на основе всего хоста ... в контексте спроса от других процессов. без голода других процессов памяти ... и без привыкания к использованию предварительно вычисляемого файла?
Подробнее здесь: [url]https://stackoverflow.com/questions/79705260/linux-low-level-management-of-virtual-memory-collaboration-between-processes[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия