Почему swapiness = 10 рекомендуется?

9

Значение swappiness=10рекомендуется в SwapFaq Ubuntu .

Почему рекомендуется значение 10, а не swappiness=0?

Есть ли плюсы из 10 или минусы из нуля?

Эрик
источник
3
@ Митч. Этот вопрос о том, почему люди рекомендуют уменьшать swappiness. Этот вопрос другой; это спрашивает, почему перестановка должна быть выше нуля вообще . Так что это не вопрос, почему люди рекомендуют, чтобы он был таким низким ; он спрашивает, почему рекомендация так высока, как она есть. Поскольку ответ там (вполне рационально) не согласуется с аргументом о сокращении перестановки, у меня есть некоторое совпадение с моим ответом здесь, но в конечном счете я думаю, что это отдельные (хотя и связанные) вопросы с отдельными ответами.
Элия ​​Каган
@EliahKagan touché :)
Митч

Ответы:

9

swappiness=0подождем, чтобы поменять местами, пока это будет абсолютно необходимо. Установка умеренного значения, например, swappiness=10приведет к тому, что страницы будут перенесены из памяти на диск с большей готовностью. Это может предотвратить необходимость много менять местами одновременно; такая необходимость может привести к раздражающим задержкам.

Кроме того, часто процесс запускается, но ничего не делает в течение длительного времени. Многие демоны (фоновые сервисы) ведут себя таким образом. У вас может быть фоновое приложение, которое некоторое время не используется. И в наши дни некоторые приложения реализованы в виде нескольких процессов, таких как Chromium и Google Chrome, где каждая вкладка имеет отдельный процесс (не отдельный поток, а отдельный процесс ). Установка swappinessзначения, такого как 10, делает так, чтобы эти фоновые задачи, которые не используются активно, были перенесены в память, даже если они могли оставаться забитыми в ОЗУ. Затем, когда более активно используемому процессу требуется выделить больше оперативной памяти, он может сделать это быстрее.

В заключение, разрешение процесса перестановки процессов из ОЗУ на диск раньше, чем это необходимо, часто дает выигрыш в производительности и меньшие задержки, когда процесс выделяет память. Это за счет времени, необходимого для обмена процессами обратно. Но это обычно делается гораздо реже, чем процесс в активном использовании выделяет и освобождает память, поэтому компромисс часто стоит.

Элия ​​Каган
источник
Вы также должны принять во внимание буфер вашего диска. Если у вас SSD с буфером 512 МБ и 4 ГБ ОЗУ. Вы можете оставить это значение равным 10, не беспокоясь о проблемах с производительностью, поскольку любая программа сможет почти мгновенно выделить около 1 ГБ ОЗУ. У меня есть твердотельный накопитель с 256 МБ буфера и 8 ГБ ОЗУ, поэтому я также оставляю его на 10, поскольку он также гарантирует быстрое выделение около 1 ГБ, что мне редко требуется.
стек