Найти тему
HUNY Blog

Как создать (удалить) файл подкачки Linux. Или удаляем /добавляем SWAP для нашей Ubuntu 20.04

В этом посте  мы успешно зарегистрировали бесплатный VPS — сервер от Oracle , а в этом  установили на него Ubuntu 20.04 (swap не включен) . Как известно, уровень Oracle Always Free включает в себя всего 1 Гбайт оперативной памяти , чего зачастую вполне достаточно для одновременной работы нескольких сервисов, например VPN-серверMQTT-брокерHome Аssistant Supervised …, вполне можно установить и настроить Nginx с Let’s Encrypt SSL с помощью Docker и Docker Compose….

Но, при запуске сборки контейнеров, или скриптов установки пакетов и их настройки, ваша виртуальная машина может просто зависнуть из-за нехватки оперативной памяти. Связано это с тем, что в установленной нами Ubuntu 20.04 отсутствует активный файл подкачки (swap ).

Убедимся в этом, для чего ведём в терминале:

(в конце этого поста, как это сделать через PuTTy по SSH , если забыли ):

$ free -h

-2

Проверяем, что у нас достаточно места  для добавления раздела swap :

$ df -h

-3

Мнений о необходимом объёме раздела  swap множество ))) Мы, в рамках этой статьи, будем придерживаться того, что этот объем должен быть равен или быть в два раза больше объема оперативной памяти вашей системы. Т.е. в нашем случае это будет объём 2 Гб. (Из практики известно, что иметь swap более 4 Гб зачастую бессмысленно).

Добавляем SWAP — файл подкачки Linux

Разместим файл нужного размера swapfile в директории root (/) с помощью программы fallocate :

$ sudo fallocate -l 2G /swapfile

Проверим, что сработало:

$  ls -lh /swapfile

Делаем файл подкачки доступным только для root:

$ sudo chmod 600 /swapfile

Проверим, что сработало:

$ ls -lh /swapfile

Говорим системе, что этот раздел у нас для файла подкачки:

$ sudo mkswap /swapfile

-4

Включаем его:

$ sudo swapon /swapfile

Проверим, что всё ok:$ sudo swapon —show

$ free -h

-5

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

Сделаем резервную копию конфигурационного файла fstab:

$ sudo cp /etc/fstab /etc/fstab.bak

Добавим в него информацию о файле подкачки:

$ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Вот в принципе и В С Ё . . . )))

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

Swappiness — это свойство ядра Linux, которое определяет, как часто система будет использовать пространство подкачки. Подкачка может иметь значение от 0 до 100.

Проверим текущее значение:

$ cat /proc/sys/vm/swappiness

60 — считается нормой для настольного ПК, но для сервера желательно это значение свести к минимуму, например — 10:

$ sudo sysctl vm.swappiness=10

Сохраним это значение и после перезапуска системы, для этого открываем файл /etc/sysctl.conf:

$ sudo nano /etc/sysctl.conf

Добавляем в конец эту строчку:

$ vm.swappiness = 10

Сохраняем и закрываем файл, нажав CTRL + X, Y , а затем ENTER .

Ну, а если по какой-то причине решите удалить файл подкачки, то нужно сделать следующее:

1) Деактивируйте swap:

$ sudo swapoff -v /swapfile

2) Удалите запись файла подкачки  из /etc/fstab файла:

$ sudo nano /etc/fstab

-6

Сохраняем и закрываем файл, нажав CTRL + X, Y , а затем ENTER .

3) Удалите сам файл подкачки с помощью rmкоманды:

$ sudo rm /swapfile

На этом у меня В С Ё !!! )))

Если по какой-то причине не удобно копировать команды для терминала из этого поста, то можете взять их с моего файла README.md , который лежит на GitHub — здесь .

Рекомендованные тематические статьи: