Какой правильный объем swap-раздела для современной системы Linux?

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

Много лет назад эмпирическое правило относительно объема раздела swap гласило, что должно было быть выделено в 2 раза больше объема оперативной памяти, установленной на компьютере. Конечно, это было, когда ОЗУ типичного компьютера измерялось в КБ или МБ. Таким образом, если бы на компьютере было 64 КБ оперативной памяти, раздел подкачки объемом 128 КБ был бы оптимальным размером.

При этом учитывался тот факт, что размеры оперативной памяти обычно были довольно малы, а выделение объема жесткого диска в 2 раза больше объема оперативной памяти для раздела swap не улучшало производительность. Имея объем swap-раздела в два раза большего, чем объем ОЗУ, большинство систем тратили больше времени на работу с ним, чем на полезную работу.

В последнее время оперативная память стала относительно недорогой, и многие компьютеры теперь имеют оперативную память в десятки гигабайт. Большинство новых компьютеров имеют как минимум 8 ГБ ОЗУ, а некоторые рабочие станции 32 ГБ и более. При работе с компьютерами с огромным объемом оперативной памяти ограничивающий фактор производительности для swap-раздела намного ниже, чем множитель 2X. Как следствие, рекомендуемое пространство подкачки считается функцией рабочей нагрузки системной памяти, а не дополнением системной памяти.

В таблице 1 приведен рекомендуемый, Fedora Project's, swap-раздел, в зависимости от объема оперативной памяти в вашей системе и от того, достаточно ли памяти для включения спящего режима. Чтобы иметь возможность разрешить переход в спящий режим, необходимо отредактировать пространство подкачки на этапе пользовательского разбиения. «Рекомендуемый» размер раздела подкачки устанавливается автоматически при установке по умолчанию, но обычно он может оказаться слишком большим или, наоборот, слишком маленьким для ваших нужд.

Руководство по установке Fedora 29 определяет текущее представление о распределении swap-раздела. Обратите внимание, что для других версий Fedora и других дистрибутивов Linux рекомендации могут немного отличаться, но это та же таблица, которую рекомендует и Red Hat Enterprise Linux. Эти рекомендации не изменились с момента выпуска Fedora 19.

Таблица 1 - Рекомендуемы объем swap-раздела в документации Fedora 29

Объем ОЗУ в системе Рекомендуемый swap Рекомендуемый swap при гибернации
≤ 2GB 2X ОЗУ 3X ОЗУ
2GB – 8GB = ОЗУ 2X ОЗУ
8GB – 64GB 0.5X ОЗУ 1.5X ОЗУ
более 64GB в зависимости от нагрузки режим гибернации не рекомендуется

Таблица 2 содержит же рекомендации, основанные на опыте работы системных администраторов в разных дистрибутивах Linux за последние годы.

Таблица 2

Объем ОЗУ в системе Рекомендуемый swap
≤ 2GB 2X ОЗУ
2GB – 8GB = ОЗУ
от 8GB 8G

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

Были протестированы рекомендации для swap-раздела в Fedora (и RHEL), использовалась рекомендацию 0,5X ОЗУ на двух больших системах, с 32 ГБ и 64 ГБ ОЗУ. Даже при работе с четырьмя или пятью виртуальными машинами, несколькими документами в LibreOffice, Thunderbird, веб-браузером Chrome, нескольких сеансах эмулятора терминала, файловом менеджере Xfe и ряде других фоновых приложений, единственное использование swap-раздела было во время резервного копирования. Даже в этом случае использование подкачки не превышало 16 МБ - да, мегабайт. Эти результаты относятся к тестовой системе с указанными нагрузками и не обязательно может относиться к вашей системе.

Сейчас некоторые производители дистрибутивов вообще отказываются от понятия swap-раздел. Аргументируя это тем, что при нынешних объемах ОЗУ, это уже не актуально.

Источник