Intereting Posts
Скопируйте только каталоги с файлами .mp3 с помощью rsync Добавьте пользователя в систему * только в том случае, если он не существует * Включение наборов экспортных шифров в Apache / OpenSSL Пейджинг с последующим уменьшением + F и раскрашивание с помощью awk Как случайным образом подмножить файл, а затем выбрать одинаковые номера строк из нескольких файлов Переслать все порты SSH Как создать ограниченного пользователя и установить и запустить с ним службы? Что устанавливает дочерний STDERR, STDOUT и STDIN? Как проверить, присутствует ли файл, начинающийся с определенного префикса, в каталоге в сценарии оболочки Некоторые агенты Ossec не могут связываться с сервером OSSEC Считать количество строк в нескольких файлах Игнорирование флага «Печать баннерной страницы» во входящих заданиях LPD (CUPS-LPD) Может ли кто-нибудь привести пример, почему я хотел бы вызвать панику ядра с помощью auditd? Найти программный пакет с большим количеством страниц руководства системы Разница между \ e и ^ [

Сомнение о mmap

Я пытаюсь создать пакет кеша для golang, который полагается на mmap для хранения большого количества содержимого в памяти, даже больше, чем у системы. Кэш не обязательно должен быть постоянным; каждый раз, когда приложение запускается, он загружает кеш из redis.

Но что происходит, когда программа пересекает максимальный предел физической памяти? Следующие распределения происходят с диска? Если ядро ​​восстанавливает память из mamp, что происходит с контентом? Он уходит? Нужно ли мне fsync mmap на диск, чтобы предотвратить такие вещи? Или ядро ​​автоматически делает это?

Когда у вас закончится физическая память, система начнет высекать по меньшей мере недавно доступные страницы памяти в раздел подкачки. Обычно ядро ​​выбирает, какие именно эти страницы. Они могут быть не вашими страницами, а скорее принадлежать другому процессу, который не использовался некоторое время.

Если вы хотите вмешаться, вы можете использовать системный вызов madvise (2), чтобы сообщить свое ядро ​​о своих стратегиях использования памяти, чтобы он мог соответствующим образом адаптироваться.