Назад в блог

Добавление swap-пространства в Ubuntu 20.04: Руководство

Добавление swap-пространства в Ubuntu 20.04: Руководство

Добавление пространства подкачки (swap) на ваш сервер — отличный способ компенсировать ошибки нехватки памяти. Linux позволяет пользователям добавлять пространство подкачки в систему, когда оперативная память (RAM) заполнена. Создание выделенного раздела позволяет физической памяти работать бесперебойно, не беспокоясь о нехватке места на диске.

Обзор Swap

Пространство подкачки в Linux — это часть виртуальной памяти машины, используемая при нехватке физической памяти. Пространство подкачки идеально подходит для временного хранения неактивных страниц памяти, особенно при работе с ресурсоемкими программами или приложениями, требующими дополнительной памяти. Создание пространства подкачки позволяет сохранять данные во время работы крупных программ, снижая вероятность сбоев приложений. Это означает, что если системе требуется больше памяти, а RAM заполнена, все неактивные страницы переносятся в swap, и программы продолжают работать без прерываний.

Какой объем пространства подкачки мне нужен?

Объем пространства подкачки зависит от нескольких факторов, включая объем доступной оперативной памяти, нагрузку на систему и необходимость поддержки режима гибернации (suspend-to-disk). В таблице ниже приведены рекомендации по объему swap в зависимости от объема RAM:

№ п/п

Доступный объем RAM

Рекомендуемый объем Swap

1.

1 ГБ

1 ГБ

2.

2 ГБ

1 ГБ

3.

3 ГБ

2 ГБ

4.

4 ГБ

2 ГБ

5.

5 ГБ

2 ГБ

6.

6 ГБ

2 ГБ

7.

8 ГБ

3 ГБ

В этом руководстве мы подробно рассмотрим шаги по добавлению пространства подкачки в Ubuntu 20.04. Давайте начнем!

Предварительные требования

Для выполнения этого руководства вам понадобятся:

Шаг 1. Проверка информации о Swap

Размер пространства подкачки зависит от оперативной памяти системы. Поэтому перед его созданием важно проверить наличие уже настроенного swap. Введите команду ниже, чтобы проверить, настроен ли swap в системе:

Swap Space image 1

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

Используйте утилиту free, чтобы убедиться в отсутствии активного swap:

Вы увидите пустую строку swap в выводе:

Swap Space image 2

Шаг 2. Проверка доступного места на жестком диске

Аналогично проверке доступности системы, давайте проверим текущее использование диска, чтобы убедиться в наличии достаточного свободного места. Используйте команду df, чтобы проверить доступность разделов жесткого диска:

Устройство с / в столбце Mounted on — это наш диск, на котором 11% свободного места. Вы увидите следующий вывод:

Swap Space image 3

После проверки системных требований перейдем к созданию файла подкачки в нашей файловой системе.

Шаг 3. Создание файла подкачки

Чтобы создать файл подкачки в нашей файловой системе, выделите файл с именем swapfile в корневом каталоге (/) с помощью программы fallocate. Выделение размера файла зависит от ваших потребностей. Чтобы руководство оставалось простым и понятным, мы создадим файл размером 1G и выделим 1G оперативной памяти. Используйте команду sudo  для создания файла подкачки:

Затем введите эту команду, чтобы проверить зарезервированное место:

Вы увидите вывод:Swap Space image 3

Теперь, когда мы создали пространство подкачки в нашей системе, давайте включим его на следующем шаге.

Шаг 4. Включение файла подкачки

После того как файл нужного размера создан, давайте преобразуем его в пространство подкачки. Из соображений безопасности крайне важно сделать этот файл доступным только для пользователей root и закрыть доступ для обычных пользователей. Мы добавим ограничения, чтобы только пользователи с правами root могли просматривать файл и читать его содержимое. Используйте следующую команду root, чтобы сделать файл доступным только для пользователей root :

Затем используйте команду ls, чтобы проверить изменения:

Как видите, только у пользователя root включены флаги чтения и записи:

Swap Space image 4

После этого разметьте файл как пространство подкачки:

Вы увидите вывод:

Swap Space image 5

После этого включите файл подкачки и разрешите нашей системе начать его использование:

Затем проверьте доступность пространства подкачки:

Вы увидите следующий вывод:

Swap Space image 6

Как и на Шаге 1, мы снова проверим свободное место с помощью утилиты free:

Вы увидите следующий вывод:

Swap Space image 7

Наш файл подкачки успешно настроен, и операционная система начнет использовать его по мере необходимости. На следующем шаге мы сделаем файл подкачки постоянным.

Шаг 5. Как сделать файл подкачки постоянным

По умолчанию сервер не сохраняет настройки подкачки автоматически при перезагрузке. Чтобы изменить настройки по умолчанию и перестраховаться, мы добавим файл подкачки в наш файл /etc/fstab. Используйте команду sudo для создания резервной копии файла /etc/fstab:

Затем добавьте информацию о файле подкачки в конец вашего файла /etc/fstab, введя:

После этого давайте рассмотрим некоторые настройки и внесем изменения, чтобы оптимизировать наше пространство подкачки.

Шаг 6. Изменение настроек подкачки

На этом шаге мы настроим параметры и внесем некоторые изменения. Давайте отрегулируем свойство swappiness и изменим давление кэша (cache pressure).

  • Настройка свойства Swappiness

Параметр swappiness представляет собой настраиваемый параметр ядра. Он изменяет баланс между вытеснением оперативной памяти и отвечает за обмен данными при переносе данных из ОЗУ в пространство подкачки. Это параметрическое значение выражается в процентах в диапазоне от 0 до 100.

Значение vm.swappiness оказывает прямое влияние на поведение подкачки системы. Чем выше vm.swappiness, тем больше система будет использовать подкачку, и наоборот. Если значение близко к нулю, ядро не будет переносить данные в подкачку, что может привести к снижению производительности. Настройка системы таким образом, чтобы она не сильно зависела от подкачки — отличный способ повысить ее производительность и добиться высокой скорости отклика.

С другой стороны, значение vm.swappiness, приближающееся к 100, пытается поместить больше данных в подкачку и меньше в физическую память. В отличие от низкого или среднего значения vm.swappiness, интенсивное использование подкачки системой имеет крайне нежелательные последствия, когда большие объемы данных активно перемещаются в ОЗУ и обратно.

Проверьте текущее значение swappiness, введя:

Вы увидите следующий вывод:

Swap Space image 8

Вы также можете установить желаемое значение swappiness с помощью команды sysctl. Давайте установим значение swappiness равным 15, введя:

Вы увидите следующий вывод:

output

До перезагрузки системы настройки останутся прежними. Добавьте строку в наш файл /etc/sysctl.conf чтобы значение устанавливалось автоматически при перезапуске/перезагрузке:

Вы можете добавить следующий код в самый конец:

code

Затем сохраните и закройте файл.

  • Настройка давления кэша (Cache Pressure)

Далее мы собираемся изменить параметр vfs_cache_pressure, который будет отдавать приоритет информации inode и dentry перед другими данными. Эти настройки vfs_cache_pressure settings также управляют склонностью ядра возвращать память, используемую для кэширования каталогов. Снова обратитесь к файловой системе proc, чтобы проверить текущее значение:

Вы увидите следующий вывод:

output 2

Поскольку настройка уже выполнена, наша система будет удалять информацию об inode из кэша. Давайте установим параметр sysctl vm.vfs_cache_pressure в более стабильное значение, например так:

Вы увидите следующий вывод:

Swap Space image 9

Аналогично тому, что мы делали для настройки swappiness, мы можем изменить конфигурацию и здесь:

В самом низу вставьте строку с новым созданным вами значением:

Swap Space image 10

Наконец, сохраните и закройте файл.

Заключение

Вы можете добавить пространство подкачки в виде выделенного раздела подкачки, файла подкачки или их комбинации. Вы можете создать пространство подкачки и использовать его преимущества для бесперебойной работы приложений, не беспокоясь о предупреждениях о нехватке памяти. Хотя создание пространства подкачки является дополнительным преимуществом в системах с ограниченным объемом памяти, его не следует рассматривать как альтернативу увеличению объема оперативной памяти. Помните, что пространство подкачки расположено на жестком диске, поэтому время доступа к нему может быть немного больше, чем к физической памяти.

Вот еще несколько руководств в нашем блоге, которые помогут вам начать работу с серверами Ubuntu:

Приятной работы!

author

Hark Labs

Автор · CloudSigma

Preslav Dobrev — креативный дизайнер в CloudSigma, сосредоточенный на формировании последовательного корпоративного образа с помощью традиционных и инновационных маркетинговых каналов. Он умело сочетает художественное видение со стратегическим маркетингом, создавая убедительные истории бренда.

Комментарии

Комментариев пока нет. Будьте первым.