Справочник

Как создать файл подкачки (swap) в Ubuntu

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

Обновлено 11.10.2026≈ 6 мин чтения
Содержание 11

Что сделать прямо сейчас

  1. Подключитесь к серверу — инструкция.
  2. Проверьте, есть ли подкачка: free -h. Нули в строке Swap: значат, что её нет. Если там уже есть размер — подкачка включена, создавать её не нужно.
  3. Проверьте, хватит ли места на диске: df -h /. В колонке Avail должно быть заметно больше 2 ГБ.
  4. Создайте файл и включите подкачку — пять команд по очереди:
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Проверьте: free -h. В строке Swap: в колонке total появится размер файла. Последнюю команду запускайте один раз: каждый запуск дописывает в /etc/fstab ещё одну такую же строку.

Что делает каждая команда

КомандаЧто делает
fallocate -l 2G /swapfileсоздаёт на диске файл размером 2 ГБ
chmod 600 /swapfileзакрывает файл от всех, кроме root: в нём будет содержимое памяти
mkswap /swapfileразмечает файл как подкачку
swapon /swapfileвключает подкачку сейчас
sudo tee -a /etc/fstabвместе с echo дописывает строку в /etc/fstab, чтобы подкачка включалась после перезагрузки

Вместо 2G можно взять другой размер: 1G, 4G. Подкачка не заменяет оперативную память — диск во много раз медленнее. Если памяти не хватает и без пиков нагрузки, нужен тариф с большей памятью, а подкачка лишь даёт запас.

Строка в /etc/fstab

Файл /etc/fstab система читает при загрузке. Строка подкачки состоит из шести полей:

ПолеЧто значит
/swapfileпуть к файлу подкачки
noneпапки для подключения нет — это не диск с файлами
swapтип: подкачка
swпараметры: для подкачки пишут sw или defaults
0 0не делать резервную копию и не проверять при загрузке

Ошибка в /etc/fstab может помешать серверу загрузиться. Перед правкой руками сделайте копию: sudo cp /etc/fstab /etc/fstab.bak. Проверить, что строка одна: grep swapfile /etc/fstab. Если строк две, лишнюю удалите в редакторе: sudo nano /etc/fstab — как пользоваться nano.

Как проверить подкачку

КомандаЧто покажет
free -hсколько подкачки всего и сколько занято
swapon --showкакие файлы подкачки включены и их размер
cat /proc/swapsто же, в виде таблицы ядра

Что значат колонки free, — в статье Команда free.

Как изменить размер

Размер включённого файла не меняют. Его выключают, удаляют и создают заново. Строка в /etc/fstab остаётся прежней, дописывать её не нужно.

sudo swapoff /swapfile
sudo rm /swapfile
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

swapoff переносит всё, что лежит в подкачке, обратно в оперативную память. Запускайте его, когда в free -h в колонке available больше, чем занято подкачки в колонке used.

swappiness: насколько охотно система берёт подкачку

Ядро решает, когда выносить память в подкачку, по числу swappiness — от 0 до 200, по умолчанию 60, менять его не обязательно. Чем меньше число, тем меньше ядро выносит в подкачку.

КомандаЧто делает
cat /proc/sys/vm/swappinessпоказать текущее значение
sudo sysctl vm.swappiness=10поставить 10 до перезагрузки

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

echo 'vm.swappiness=10' | sudo tee /etc/sysctl.d/99-swappiness.conf
sudo sysctl --system

Как убрать подкачку

  1. Выключите её: sudo swapoff /swapfile.
  2. Удалите строку /swapfile none swap sw 0 0 из /etc/fstab: sudo nano /etc/fstab, строку — Ctrl+K, сохранить — Ctrl+O и Enter, выйти — Ctrl+X.
  3. Удалите файл: sudo rm /swapfile.

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

Ошибки и как их исправить

ОтветЧто значитЧто сделать
insecure permissions 0644, 0600 suggestedфайл могут читать другие пользователиsudo chmod 600 /swapfile
skipping - it appears to have holesфайл подкачки создан с пропусками, такой ядро не приметсоздайте файл командой dd — как
swapon failed: Device or resource busyэтот файл уже включёнпроверьте swapon --show
swapon failed: Invalid argumentфайл не размечен как подкачкавыполните sudo mkswap /swapfile и снова swapon
swapon failed: Operation not permitted с sudoпровайдер не даёт включать подкачку на этом тарифеспросите поддержку провайдера
fallocate отвечает No space left on deviceна диске не хватает меставозьмите размер меньше или освободите место — No space left on device

Если fallocate не подошёл

swapon проверяет, что файл целиком лежит на диске. На некоторых файловых системах файл от fallocate не проходит эту проверку. Тогда удалите его и создайте командой dd — она пишет файл нулями целиком, это дольше:

sudo rm /swapfile
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

count=2048 при bs=1M — это 2 ГБ. Для 4 ГБ напишите count=4096.

Источники

Сверено 11 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 11.10.2026