Как создать (удалить) файл подкачки 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 ).
Убедимся в этом, для чего ведём в терминале:
Проверяем, что у нас достаточно места для добавления раздела swap :
Мнений о необходимом объёме раздела swap множество ))) Мы, в рамках этой статьи, будем придерживаться того, что этот объем должен быть равен или быть в два раза больше объема оперативной памяти вашей системы. Т.е. в нашем случае это будет объём 2 Гб. (Из практики известно, что иметь swap более 4 Гб зачастую бессмысленно).
Добавляем SWAP — файл подкачки Linux
Разместим файл нужного размера swapfile в директории root (/) с помощью программы fallocate :
$ sudo fallocate -l 2G /swapfile
Делаем файл подкачки доступным только для root:
$ sudo chmod 600 /swapfile
Говорим системе, что этот раздел у нас для файла подкачки:
$ sudo mkswap /swapfile
$ sudo swapon /swapfile
Проверим, что всё ok: $ sudo swapon —show
Следующие две команды позволят использовать файл подкачки не только для текущего сеанса, но и после перезагрузки системы.
Сделаем резервную копию конфигурационного файла 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
Добавляем в конец эту строчку:
Сохраняем и закрываем файл, нажав CTRL + X, Y , а затем ENTER .
Ну, а если по какой-то причине решите удалить файл подкачки, то нужно сделать следующее:
$ sudo swapoff -v /swapfile
2) Удалите запись файла подкачки из /etc/fstab файла: