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

Инструкция по добавлению файла подачки в среде Linux для корректной работы CMS Ghost

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

Во время развертывания данного сайта на базе CMS Ghost под управлением Ubuntu 22.04.5 LTS с оперативной памятью в 1GB, возникали проблемы с нехваткой памяти и процесс установки зависал.

Решение было найдено - созданием файла подкачки.


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

Чтение и запись информации с диска намного медленнее, чем из оперативной памяти. Операционная система будет по-прежнему предпочитать работать с данными приложений в памяти, а подкачку использовать для более старых данных.

ℹ️
Рекомендуется использовать файл подкачки размером x2 от текущего размера оперативной памяти. На практике чаще достаточно 50-100% от размера оперативной памяти.

Шаг 1 - Проверка информации о подкачке в системе

Можно иметь несколько файлов или разделов подкачки, но обычно одного достаточно.

Узнать, сконфигурирована ли в системе подкачка, необходимо ввести:

sudo swapon --show

Если после этой команды ничего не появляется, в системе сейчас нет области подкачки.

Можно убедиться в отсутствии активной подкачки при помощи утилиты free:

free -h

Примерный результат:

Output
              total        used        free      shared  buff/cache   available
Mem:          981Mi       122Mi       647Mi       0.0Ki       211Mi       714Mi
Swap:            0B          0B          0B

В строке ​​​Swap видно​​​, что в системе отсутствует активная подкачка.

Шаг 2 - Проверка свободного пространства в разделе жесткого диска

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

df -h

Примерный результат:

Filesystem      Size  Used Avail Use% Mounted on
tmpfs            96M  1.1M   95M   2% /run
/dev/vda1        15G  6.8G  8.0G  46% /
tmpfs           479M     0  479M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs            96M  4.0K   96M   1% /run/user/0

В данном случае устройство с / в столбце ​​​​​​Mounted on​​​ — диск на сервере. В данном примере использовано 6,8 Гбайт.

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

Когда известно свободное место на жестком диске, можно создать файл подкачки в файловой системе. Добавим файл необходимого размера под названием swapfileв корневую (/) директорию.

Лучше всего создавать файл подкачки при помощи программы fallocate. Эта команда мгновенно создает файл указанного размера.

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

sudo fallocate -l 1G /swapfile

Чтобы проверить правильность выделенного объема памяти, необходимо ввести:

ls -lh /swapfile

Примерный результат:

-rw------- 1 root root 1.0G Jan 30 13:23 /swapfile

Файл создан с правильным выделенным объемом памяти.

Шаг 4 - Активация файла подкачки

Когда есть файл правильного размера, необходимо превратить его в пространство подкачки.

Сначала нужно изменить права доступа к файлу, чтобы только пользователи с правами root могли читать его содержимое. Это предотвращает доступ обычных пользователей к файлу — такой доступ может существенно влиять на безопасность.

Чтобы передать все права доступа пользователям root, необходимо ввести:

sudo chmod 600 /swapfile

Проверить изменение прав доступа, необходимо ввести следующее:

ls -lh /swapfile

Примерный результат:

Output
-rw------- 1 root root 1.0G Jan 30 13:23 /swapfile

Теперь только у пользователя с правами root отмечены флажки чтения и записи.

Далее необходимо отметить файл как пространство подкачки, введя следующее:

sudo mkswap /swapfile

Примерный результат:

Output
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=6e965805-2ab9-450f-aed6-577e74089dbf

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

sudo swapon /swapfile

Необходимо убедиться, что пространство подкачки активировано, введя следующее:

sudo swapon --show

Примерный результат:

Output
NAME      TYPE  SIZE   USED PRIO
/swapfile file 1024M 511.7M   -2

Чтобы подтвердить выводы, можно снова проверить ответ утилиты free:

free -h

Примерный результат:

Output
               total        used        free      shared  buff/cache   available
Mem:           957Mi       439Mi        84Mi       0.0Ki       433Mi       362Mi
Swap:          1.0Gi       511Mi       512Mi

Подкачка успешно настроена, и операционная система начнет использовать ее по мере необходимости.

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

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

Рекомендуется сделать резервную копию файла /etc/fstab на случай если что-то пойдет не так:

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

Добавить информацию о файле подкачки в конец файла /etc/fstab, введя следующее:

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

Заключение

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

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


Материал был создан на основе статьи How To Add Swap Space on Ubuntu 20.04