Как я могу настроить ядро ​​на общий своп?

Я хотел бы развернуть следующую политику свопинга:

  • По умолчанию все страницы в памяти также должны находиться в области подкачки.
  • Когда страница в памяти изменяется (т. Е. Грязная), страница должна быть выписана как можно скорее, но с меньшим приоритетом, чем другие процессы.
  • если достигнут определенный настраиваемый водяной знак (скажем, 80% страниц загрязнены), приоритет будет равен другим процессам.

Возможна ли такая политика обмена с ядром linux? Если да, то каким образом я могу установить настройки ядра для этого?

Редактировать:

Очевидно, причина этого заключается в том, чтобы уменьшить количество страниц, которые необходимо поменять. На диск должны записываться только грязные страницы, и это происходит в фоновом режиме с течением времени. Поэтому, когда происходят пропуски страницы (т. Е. Страница не находится в памяти), нет необходимости писать какие-либо страницы из памяти на диск, но только с диска на память. Поэтому он уменьшил вероятность узких мест ввода-вывода, потому что как замена, так и свопинг пытаются получить доступ к диску одновременно.

  • Linux: Total swap used = swap, используемый процессами +?
  • Linux, SSD и своп
  • Как я могу понять, когда пространство подкачки будет использоваться на нашей Linux-машине?
  • Почему по умолчанию используется swappiness?
  • Индикатор жесткого диска мигает, когда у меня заканчивается память, но у меня нет своп-конфигурации
  • Зачем использовать swap, когда в ОЗУ имеется достаточно свободного места?
  • как раздел для двойной загрузки OpenSuSE
  • Можно ли пометить содержимое _current_ памяти как не подлежащее замене?
  • 3 Solutions collect form web for “Как я могу настроить ядро ​​на общий своп?”

    Вы можете установить значение /proc/sys/vm/swappiness для управления соотношением подкачки и хранением вещей в памяти. Значение 0 полностью исключает возможность свопинга любой ценой.

    Это можно сделать, используя:

    • echo 0 > /proc/sys/vm/swappiness
    • sysctl -w vm.swappiness=0
    • Сохранение этой настройки в /etc/sysctl.conf

    Как правило, использование небольшого свопа – это не плохо. Свободная память может использоваться для кэширования данных, считываемых с диска, и система может планировать заранее, чтобы внезапно потребовалось много памяти приложением.

    Однако, когда слишком много программ сменяется, в течение каждого программного переключателя существует много активности, связанной с диском, которая действительно замедляет работу. Прежде чем что-то можно будет использовать, его необходимо загрузить обратно в память.

    Диски читают ужасно медленнее по сравнению с доступом к памяти. Как и ждать часа, прежде чем данные поступят. Система должна планировать чтение между другими запросами на чтение / запись, привод начинает попытки найти правый цилиндр и, наконец, начинает выдавать данные .. медленно.

    Следовательно, я считаю, что ваша логика ошибочна. Как правило, вы хотите, чтобы программы работали в памяти и сохраняли достаточно места для внезапного роста. Не использовать swap overly для «записи вещей на диск». Это не резервное копирование и не улучшение производительности.

    Старые компьютеры с меньшим объемом памяти страдали от проблем с заменой. Когда было открыто много программ, все было медленным, и вы могли слышать чтение и запись на диске все время. В файл подкачки.

    Просто потому, что ваша система меняет местами, это не значит, что у вас есть проблема. Есть приложения, которые точно настроены, чтобы воспользоваться большим преимуществом обмена, не мешая работе системы. Большинство реляционных систем баз данных настроены таким образом: IE: Oracle и Cache, вероятно, являются самыми большими двумя.

    Если вы используете спящий режим, он использует пространство подкачки для хранения ОЗУ. При загрузке системы резервное копирование все в свопе добавляется обратно в ОЗУ. Таким образом, вы можете отключить свою систему, не пережевывая батарею, как в режиме ожидания, и все еще возвращайтесь туда, где вы остановились перед отключением. В результате ваша батарея будет работать намного дольше.

    Обмен может быть отличным делом, потому что он освобождает больше вашего активного ОЗУ, чтобы поддерживать высокую производительность вашей системы. Когда ваша активная ОЗУ заполнена И ваш своп заполнен, и вам все еще нужно больше места, тогда и только тогда у вас есть проблема. До этого момента обмен сюда поможет вам, а не повредит вам.

    Добавляя к ответу vdboor, я думаю, что для достижения того, что вы хотите, вам нужно изменить больше, чем swappiness . Существует более доступная конфигурация ядра, которая управляет использованием swap. Пользователь может получить доступ к ним во время выполнения через файлы /proc/sys/vm/* или постоянно установить в /etc/sysctl.conf (для этого может потребоваться добавить сценарий инициализации sysctl к вашей последовательности загрузки)

    Эти настройки хорошо описаны в документации ядра Linux. Его можно найти в разделе <your_kernel_sources_path>/Documentation/sysctl/vm.txt . Вы также можете посмотреть некоторую онлайн-документацию, такую ​​как эта .

    Interesting Posts

    Перемещенный ящик и другие папки! Как их вернуть?

    Синтаксис синтаксиса «grep» для BRE или ERE содержит синтаксис «синтаксиса регулярных выражений» 8.5.6 'в справочнике findutils?

    Где мотив используется сегодня

    Настройка базовой среды chroot из образа ISO Fedora в Ubuntu

    Почему дата +3 равна 3?

    Некоторые службы на debian 9.0 не могут разрешать имена доменов

    npm на возврате ARM TypeError: Плохой аргумент

    Каковы шаги, необходимые для кэширования кодовых фраз, введенных через pinentry с использованием gpg-preset-passphrase в 2.1.15?

    Как распечатать все строки файла с повторяющимися значениями в определенном столбце

    Добавить аргументы для последнего вызова `find … -exec $ COMMAND {} +`

    Требуется ли управление группами для доступа root?

    Как автоматически добавить мою программу в панель gnome

    Почему df на конкретном монтировании перебирает все монтировки?

    Что такое replstrs как {}?

    С mv, можно установить временную зависимость от файлов mv'ed?

    Linux и Unix - лучшая ОС в мире.