Безопасно ли постоянно отключать своп?

54

Моя система работала медленнее, особенно когда я использую такие браузеры, как Firefox / Chromium и Виртуальные машины. Я заметил, что у меня есть по крайней мере 3,2 ГБ свободной оперативной памяти (с использованием системного монитора Gnome), и обмена не было.

То, что я сделал сейчас, - это производительность swapoff -aсистемы на 30%. Итак, мой вопрос: это безопасно использовать swapoff? Будет ли безопасно перезагрузить компьютер swapoff?

введите описание изображения здесь

Один ноль
источник
1
Вы уверены, что Ubuntu использует ваш своп до того, как он полностью использует оперативную память? Какой вывод у free -m ? Обычно отключение свопа не имеет значения, поскольку Ubuntu старается использовать оперативную память в максимально возможной степени, и не должно случиться, что оперативная память не используется и используется своп.
ste_kwr
2
Просто к сведению, у меня нет системы подкачки на моей 8 ГБ системе с одним SSD.
Лекенштейн
3
Вы можете либо отключить swap, что должно быть хорошо, либо настроить значение swapiness. Его можно найти в / proc / sys / vm / swappiness. Используйте 'sysctl' для более постоянного изменения. Стоит отметить, что спящий режим нуждается в обмене. Я думаю, что сон на самом деле не нужен, но впадает в спячку.
Марки
@ kniwor Да, я сделал, после 2,5 ГБ оперативной памяти ... он использует своп, и я должен перезагрузить, тогда моя система работает нормально. и через некоторое время после 1 ГБ моя система стала работать медленно
One Zero
@ Я проверял это от 5 до 6 раз
один ноль

Ответы:

94

Ядро Linux предоставляет настраиваемый параметр, который контролирует частоту использования файла подкачки, называемый swappiness

Значение swappiness от нуля означает , что диск не будет предотвращен , если это абсолютно необходимо (вы бежите из памяти), в то время как установка swappiness из 100 означает , что программы будут заменены на диск почти мгновенно.

В системе Ubuntu по умолчанию установлено значение 60, что означает, что файл подкачки будет использоваться довольно часто, если использование памяти составляет около половины моей оперативной памяти. Вы можете проверить значение swapiness вашей собственной системы, запустив:

one@onezero:~$ cat /proc/sys/vm/swappiness
60

Поскольку у меня 4 ГБ ОЗУ, я бы хотел уменьшить это значение до 10 или 15. Файл подкачки будет использоваться только тогда, когда объем используемой памяти составляет около 80 или 90 процентов. Чтобы изменить значение подкачки системы, откройте /etc/sysctl.conf as root. Затем измените или добавьте эту строку в файл:

vm.swappiness = 10

Перезагрузитесь, чтобы изменения вступили в силу

Вы также можете изменить значение, пока ваша система еще работает

sysctl vm.swappiness=10

Вы также можете очистить своп, запустив его, swapoff -aа затем swapon -aот имени root вместо перезагрузки, чтобы добиться того же эффекта.

Для расчета вашей формулы своп

free -m (total) / 100 = A

A * 10

root@onezero:/home/one# free -m
             total       used       free     shared    buffers     cached
Mem:          3950       2262       1687          0        407        952
-/+ buffers/cache:        903       3047
Swap:         1953          0       1953

итого 3950/100 = 39,5 * 10 = 395

так что это означает, что, когда 10% 395 МБ оперативной памяти осталось, то он начинает использовать swapiness

Один ноль
источник
11
+1 Это отличный практический совет по настройке свопинга. Отличный ответ. Вы можете даже опубликовать новый вопрос с вопросом «как настроить подкачку» и скопировать этот ответ, чтобы другим было проще его найти. Люди, приходящие на этот вопрос, будут искать ответы «да или нет», ваш практический совет для людей, которые уже выбрали «да»
Том Броссман,
1
@ TomBrossman, я сделал, вы можете проверить это askubuntu.com/questions/103915/how-do-i-configure-swappiness
One Zero
11
Это, будучи полезным руководством, не отвечает на вопрос. Спрашивающий хотел знать , безопасно это или нет , а не как это сделать.
четыре
2
@InkBlend Даже страннее, это не-ответ является по спрашивающего.
underscore_d
В любом случае, большое спасибо за совет. Это совершенно новый мир, использующий эту Ubuntu Lappy.
Дон Пфластер
17

Вероятно. Вы должны прочитать часть «Почему мне нужен своп» на странице часто задаваемых вопросов по Ubuntu и судить сами.

Если вы цените скорость выше, чем может обеспечить своп, то вам следует отключить ее

Если вы никогда не зависаете на диске, а всегда выключаетесь и перезагружаетесь, вы можете безопасно отключить его.

Если у вас много оперативной памяти (ваши работающие 4 ГБ + виртуальные машины - близкий вызов), то вы можете.

Для меня моя ОС на SSD, 8 ГБ ОЗУ и никогда не приостанавливается. Мне не нужен своп, я никогда не видел его в использовании, и я просто установил его при установке по привычке.

В качестве альтернативы, здесь есть настройка about: config для Firefox от Lifehacker, которая объясняет, как использовать оперативную память только для кэша браузера. Прочитайте опровержение, связанное в нижней части статьи, прежде чем попробовать.

Том Броссман
источник
1

Нет, это не безопасно. Причина в том, что, когда системе не хватает оперативной памяти и она не может заменить ее, она может зависнуть без возможности восстановления, кроме как с полным сбросом. Это не просто возможность приостановить или нет.
Источник: мой 14.04 делает это.

Вы должны сохранить минимальный объем пространства подкачки, посмотрите в FAQ по Ubuntu номера.

Прземек Д
источник