🖥️ Как создать и настроить файл подкачки (swap).
Введение.
Файл подкачки (swap) — это область на диске, используемая для временного хранения данных, которые не помещаются в оперативную память (RAM). Когда оперативная память переполнена, система перемещает неактивные страницы памяти в swap, освобождая RAM для более приоритетных процессов. Это помогает предотвратить зависания системы, но доступ к данным на диске медленнее, чем к данным в RAM. Swap может быть реализован как отдельный раздел на диске или как файл.
Данная инструкция описывает, как создать раздел для swap (виртуальное пространство подкачки), как проверить его функционирование и настроить автоматическое подключение после перезагрузки.
Что такое swap файл?
Swap-файл (его ещё называют «файл подкачки») — это специальный файл на жёстком диске, в котором хранятся данные для быстрого доступа системы. Это как бы продолжение оперативной памяти.
Принцип работы: система создаёт на диске один большой файл, к которому быстрее всего можно получить доступ. В этот файл выгружаются те данные из оперативной памяти RAM, которые сейчас пока не нужны. Например, программа давно висит в фоне и с ней никто не работает. Как только компьютер увидит, что с программой снова активно работают, он загружает обратно в оперативную память её данные из swap.
Проверка наличия swap.
Прежде чем создавать swap, полезно проверить, существует ли уже раздел или файл swap?
Для этого выполните следующую команду:
$ sudo swapon --show
Ответ:
Если вывод пустой, значит, swap не активирован.
Также можно проверить общее использование RAM и swap с помощью команды:
$ sudo free -h
Ответ:
Эта команда выводит общий объем доступного пространства подкачки:
$ sudo grep SwapTotal /proc/meminfo
Ответ:
Создание swap-файла.
Перед созданием swap-файла необходимо убедиться, что на диске достаточно свободного места.
Используйте команду:
$ sudo df -h
Эта команда покажет все разделы и их использование, включая доступное место.
Для создания swap-файла размером 8 Gb
выполните команду:
$ sudo fallocate -l 8G /swapfile
Если fallocate
не поддерживается, вы можете использовать:
$ sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
Рекомендуется, чтобы размер swap был равен объему
оперативной памяти (RAM) или в два раза больше
для систем с малым объемом RAM.
Например, если у вас 4 Gb
RAM, можно создать swap размером 4 Gb
или 8 Gb
.
Важно установить правильные права доступа к swap-файлу, чтобы только root мог его использовать:
$ sudo chmod 600 /swapfile
Теперь нужно инициализировать файл как swap:
$ sudo mkswap /swapfile
После инициализации активируйте swap-файл:
$ sudo swapon /swapfile
Убедитесь, что swap теперь активен:
$ sudo swapon --show $ sudo free -h
Чтобы сделать swap активным при каждой загрузке системы, добавьте следующую строку в файл /etc/fstab
:
$ sudo mcedit /etc/fstab
/swapfile none swap sw 0 0
Изменение swap.
Важно! При отключении swap не должен использоваться системой. В противном случае можно отключить некоторые сервисы, которые потребляют RAM, и после увеличения swap включить их обратно.
Проверяем активный swap:
$ sudo swapon --show
Ответ:
/swapfile file 256M 0B -2
Видим, что у нас в /swapfile 256M
, а нам нужно 8 Gb
.
Проверяем, что есть свободное место с помощью команды df -h
.
$ sudo df -h
Далее выключаем имеющийся файл подкачки /swapfile
:
$ sudo swapoff /swapfile
Проверяем с помощью swapon --show
.
$ sudo swapon --show
Меняем размер файла подкачки:
$ sudo dd if=/dev/zero of=/swapfile bs=1M count=8192
Далее инструкция такая же, как и при добавлении swap, только /swapfile
уже имеет правильные права.
$ sudo chmod 600 /swapfile
Просто проверим, что это так:
$ sudo ls -la /swapfile
Ответ:
Помечаем /swapfile
как файл подкачки:
$ sudo mkswap /swapfile
И активируем swap:
$ sudo swapon /swapfile
Проверяем, что swap увеличился, а также проверяем файл /etc/fstab
:
$ sudo swapon --show $ sudo cat /etc/fstab
Удаление swap.
Чтобы удалить swap-файл, сначала отключите его:
$ sudo swapoff -v /swapfile
Затем удалите файл:
$ sudo rm /swapfile
Удалите запись о swap в файле /etc/fstab
.
Полезные советы.
Мониторинг использования swap.
Используйте команды free -h
и top
для мониторинга использования RAM и swap.
$ sudo free -h $ sudo top
Оптимизация.
$ sudo cat /proc/sys/vm/swappiness
Вы можете настроить параметр swappiness
, который определяет, как часто система использует swap вместо RAM. Значение по умолчанию — 60
.
Чтобы изменить его, выполните:
$ sudo sysctl vm.swappiness=10
Чтобы сделать это изменение постоянным, добавьте строку vm.swappiness=10
в файл /etc/sysctl.conf
.
$ sudo mcedit /etc/sysctl.conf
vm.swappiness=10
Применить изменения:
$ sudo sysctl -p
Оригиналы источников информации.
- siberoloji.com «How to Manage System Swap Space in Debian 12 Bookworm».
- kb.fastfox.pro «Как создать и настроить файл подкачки (swap)».
- stopgame.ru «SWAP (своп) или файл подкачки».