
Есть обильные посты о полном отключении подкачки Ubuntu. Можно ли сказать Ubuntu разрешить, но запретить использование подкачки?
Я установил Xubuntu на ноутбук с 1Gb RAM и небольшим SSD, превратив его в сервер Samba. В худшем случае свободной памяти все еще хватит для всех данных из файла подкачки:
~$ free -m
total used free shared buffers cached
Mem: 991 696 294 17 66 175
-/+ buffers/cache: 454 536
Swap: 1952 107 1845
Я хочу предостеречь от использования swap при наличии свободной памяти, поскольку swap выполняет много операций ввода-вывода, которые быстро ухудшают работу SSD.
Можно ли сделать оперативную память приоритетнее подкачки или выбор ограничен "вкл/выкл подкачки"? Какие побочные эффекты это вызывает, если они есть?
Спасибо за указание на существующие ответы, они важны, но их трудно найти. Пользователь должен знать 90% ответа, чтобы искать "как настроить swappiness". На вопрос дан ответ. Надеюсь, этот заголовок вопроса поможет индексации.
решение1
Если у вас не очень старый SSD, то более-менее современные SSD могут справиться с большим объемом записи, так что вам на самом деле не нужно ничего делать, если у вас более-менее современный SSD.
Если вы все еще хотите уменьшить подкачку, уменьшите swappiness
(минимальное значение в современных Linux — 1
, а не 0
, если вы хотите выложиться по полной, хотя 10
это рекомендуемый минимум и 60
значение по умолчанию в Ubuntu). Это может значительно замедлить работу (вплоть до того, что система может зависнуть на некоторое время, если будет сильно загружена память), когда подкачка наконец начнется, поскольку заранее будет выгружено мало или вообще ничего.
Чтобы установить swappiness
, замените 10
ниже на swappiness
нужное вам, 1
чтобы 100
, где более низкие значения меняются реже. Откройте терминал (нажмите Ctrl+ Alt+ T) и выполните:
sudo sysctl vm.swappiness=10
sudo nano /etc/sysctl.conf
Теперь добавьте строку внизу (или, если vm.swappiness
строка уже есть, отредактируйте ее):
vm.swappiness = 10
Нажмите Ctrl+ Oдля сохранения. Нажмите Ctrl+ Xдля выхода nano
. Закройте окно терминала.