1. Главная
  2. /
  3. Linux
  4. /
  5. CentOS
  6. /
  7. 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

Пишет, что недопустимый аргумент, в этом случае поможет это CentOS 7 — 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

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

Поделиться ссылкой на статью

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Категории

Меню