Инструкция как добавить Swap в CentOS - подключить файл подкачки, удалить файл подкачки

Инструкция как добавить Swap в CentOS - подключить файл подкачки, удалить файл подкачки

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

Своп (от английского swap) – область на накопителе, где операционная система может временно хранить данные, которые уже не держит в оперативной памяти. Swap, файл подкачки, механизм виртуальной памяти перемещающий отдельные фрагменты памяти из оперативной памяти на жёсткий диск, внешний накопитель, специально выделенный раздел или файл, тем самым выполняя своё предназначение и освобождая оперативную память для других активных фрагментов памяти.
Файл подкачки дает возможность увеличить объем информации, которую сервер может хранить в рабочей памяти. Но, с некоторыми оговорками. Чтение и запись в раздел подкачки медленнее, чем при использовании памяти, но это может поддержать, когда на сервере недостаточно оперативной памяти.
Без подкачки, в момент нехватки памяти, сервер может начать завершать процессы, чтобы освободить память, или даже аварийно завершить работу. Это может привести к потере данных или возникновению простоев.

В этой инструкции:

  • Проверка системы на наличие свопа
  • Проверка доступного места для обмена
  • Создание файла подкачки
  • Подключение файла подкачки сразу
  • Подключение файла подкачки после загрузки системы
  • Отключить и удалить своп файл

Проверка системы на наличие и использование свопа

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

$ swapon -s

Если команда ничего не возвращает, значит файла подкачки не существует. В обратном случае, в терминал будет выведено нечто подобное:

$ swapon -s
Имя файла                Тип        Размер    Исп-но    Приоритет
/dev/dm-0                                  partition    5862396    0    -2

то же самое, с выводом полного пути к файлу свопа, но вывести из содержания файла swaps:

$ cat /proc/swaps
Filename                Type        Size    Used    Priority
/dev/dm-0                               partition    5862396    0    -2

Утилита free отобразит текущее использование памяти и подкачки:

$ free -m
              всего        занято        свободно      общая  буф./врем.   доступно
Память:        5553        3701         415         293        1437        1306
Подкачка:         0           0           0

Проверка доступного место для обмена и хранения данных

Важно убедится в наличии доступного места на носителе:

$ df -h
Файл.система             Размер Использовано  Дост Использовано% Cмонтировано в
/dev/mapper/centos-root     29G         3,6G   26G            13% /
devtmpfs                   484M         3,4M  484M            0% /dev
tmpfs                      496M         3,4M  496M            0% /dev/shm
tmpfs                      496M         3,4M  489M            2% /run
tmpfs                      496M         3,4M  496M            0% /sys/fs/cgroup
/dev/sda1                 1014M         132M  883M           13% /boot
tmpfs                      100M            0  100M            0% /run/user/0

Для использования еще доступно 26G и этого достаточно.

Создать файла подкачки

Создать 1-гигабайтный файл подкачки указанного размера используя команду fallocate:

$ sudo fallocate -l 1G /my-swap-file

С помощью ls можно убедится в его наличии и в достаточном количестве зарезервированного пространства:

$ ls -lh /my-swap-file
-rw-r--r-- 1 root root 1.0G янв 4 11:00 /my-swap-file

Подключение файла подкачки

Файл уже создан, но система еще не знает, что он должен использоваться для хранения и обмена. Нужно отформатировать этот файл как swap, а затем включить его. Но прежде, должны быть настроены права доступа, чтобы файл мог быть прочитан, только учетной записью root. Разрешение другим пользователям читать или писать в этот файл, было бы большой угрозой безопасности. Ограничиваются разрешения с помощью chmod:

$ sudo chmod 600 /my-swap-file

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

$ ls -lh /my-swap-file
-rw------- 1 root root 1.0G янв 4 11:00 /my-swap-file

Теперь, файл подкачки стал более безопасным и можно указать системе пространство подкачки:
Указывается файл подкачки командой mkswap

$ sudo mkswap /my-swap-file
Setting up swapspace version 1, size = 10848572 KiB
no label, UUID=bb94e86e-c1d2-4b5a-8cc2-fdffd2078d7e

Сразу включить файл подкачки

Файл подкачки готов к работе в качестве пространства подкачки, для его использования набрать:

$ sudo swapon /my-swap-file

В данный момент файл подкачки включен и при необходимости используется. После перезагрузки сервер должен автоматически включать для использования файл свопа. На подключение укажет строка дописанная в таблицу управляющую файловыми системами и разделами в файле fstab.
На этом этапе, есть вероятность получить следующую ошибку swapon failed: Invalid argument:

$ sudo swapon /my-swap-file
swapon: swapfile has holes
swapon: /my-swap-file: swapon failed: Invalid argument

Подключение файла подкачки после загрузки системы

Чтобы файл подключался во время загрузки системы, в файл fstab

$ sudo nano /etc/fstab

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

/my-swap-file   swap    swap    sw  0   0

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

Отключить и удалить своп файл

Шаг 1. Отключить файл подкачки:

$ sudo swapoff -v /my-swap-file

Шаг 2. Удалить строку из таблицы fstab:

$ sudo nano /etc/fstab

Шаг 3. Удалить своп файл:

$ sudo rm /my-swap-file

Подтвердить удаление и его не станет.

11:56
653