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

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

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

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

  • Различия FHS между OS X, Linux и FreeBSD
  • Кто-нибудь действительно использует и извлекает выгоду из прозрачных огромных страниц?
  • Ограничение IP-адреса оборудования Ethernet
  • Использование TCP_DEFER_ACCEPT в реальном мире?
  • cat все строки из файла, которые после «KEYWORD»
  • Имеет ли Linux способы кэширования ввода-вывода с памятью
  • Редактировать:

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

  • Файловая система Linux, которая устарела от старых файлов, когда раздел заполнен
  • chroot: не удалось запустить команду '/ bin / bash': разрешение отклонено
  • Является ли Линус Торвальдс хакером?
  • Проблемы с сетевым подключением между разными хостами из сетевого пространства имен в одном хосте
  • Как найти соответствующую команду для чего-то в Linux?
  • К какому пакету Debian принадлежит /etc/nsswitch.conf?
  • 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 . Вы также можете посмотреть некоторую онлайн-документацию, такую ​​как эта .

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