Какой правильный объем 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 за последние годы.
Возможно, что ни одна из этих таблиц не будет работать в вашем случае, но они дадут вам возможность с чего-то начать. Основное соображение заключается в том, что по мере увеличения объема ОЗУ, увеличение swap-раздела просто приводит к тому, что пространство для хранения выделяется, но не используется, что является неэффективным использованием ресурсов. Если у вас слишком мало виртуальной памяти, вам следует добавить больше оперативной памяти, если это возможно, а не увеличивать swap-раздел.
Были протестированы рекомендации для swap-раздела в Fedora (и RHEL), использовалась рекомендацию 0,5X ОЗУ на двух больших системах, с 32 ГБ и 64 ГБ ОЗУ. Даже при работе с четырьмя или пятью виртуальными машинами, несколькими документами в LibreOffice, Thunderbird, веб-браузером Chrome, нескольких сеансах эмулятора терминала, файловом менеджере Xfe и ряде других фоновых приложений, единственное использование swap-раздела было во время резервного копирования. Даже в этом случае использование подкачки не превышало 16 МБ — да, мегабайт. Эти результаты относятся к тестовой системе с указанными нагрузками и не обязательно может относиться к вашей системе.
Сейчас некоторые производители дистрибутивов вообще отказываются от понятия swap-раздел. Аргументируя это тем, что при нынешних объемах ОЗУ, это уже не актуально.
Файл подкачки в Linux — сколько нужно и нужно ли?
Файл подкачки (SWAP) — помогает ядру Linux и оперативной памяти справиться с большим количеством запущенных приложений. Если вы запустите в своем дистрибутиве сразу несколько ресурсоемких процессов, то часть из них (те, что вы не используете), будет перемещена из действующей оперативной памяти, в специально отведенный раздел жесткого диска.
Разумеется, жесткий диск (даже SSD), работает медленней чем блоки оперативной памяти, но это помогает разгрузить систему в целом и дать ей возможность сосредоточиться на обработке тех процессов, которые использует пользователь в данный момент.
Как выбрать оптимальный размер файла подкачки?
Тут существуют некоторые правила:
- Если размер вашей оперативной памяти не превышает 2 Gb — то рекомендуется отводить под SWAP не менее 6 Gb места на жестком диске.
- Для систем в которых установлено 4-8 Gb RAM — рекомендуется соответственно 8-16 Gb.
- Если же у Вас больше 16 Gb оперативной памяти, то можно вообще не использовать файл подкачки.
По большому счету, даже с небольшим количеством оперативной памяти можно полностью отказаться от подкачки. На самом деле, все эти правила, с удвоенным или утроенным размером оперативной памяти давно уже устарели. Они были актуальны для старых ПК, в которых RAM измерялась в мегабайтах.
При современных объемах и скорости работы оперативной памяти лучше вообще не использовать SWAP раздел. Поскольку метания данных с жесткого диска на RAM, так же замедляют работу. Лучше просто закрывайте часть не используемых программ — это улучшит скорость работы вашей системы гораздо сильнее чем любые файлы подкачки.
Но если вы настойчиво хотите использовать резерв, то не отводите на него слишком много места с жесткого диска. Слишком большой размер SWAP приводит к перерасходу памяти, что сказывается на работе системы так же плохо, как и ее нехватка!
Не забываем ставить палец вверх и подписываться на канал. Впереди еще много интересного!