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

Во время развертывания данного сайта на базе CMS Ghost под управлением Ubuntu 22.04.5 LTS с оперативной памятью в 1GB, возникали проблемы с нехваткой памяти и процесс установки зависал.
Решение было найдено - созданием файла подкачки.
Подкачка — это часть хранилища на жестком диске, которая была выделена для временного хранения данных операционной системой в случае переполнения оперативной памяти. Это позволит увеличить количество информации, которое сервер может хранить в рабочей памяти, соблюдая определенные меры предосторожности. Область подкачки на жестком диске будет использоваться в основном тогда, когда в оперативной памяти больше нет достаточного места хранения данных для приложений.
Чтение и запись информации с диска намного медленнее, чем из оперативной памяти. Операционная система будет по-прежнему предпочитать работать с данными приложений в памяти, а подкачку использовать для более старых данных.
Шаг 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