cp.lv — VPS, выделенные и облачные серверы

cp.lv (LANGMARKET LLP) — хостинг-провайдер: VPS, выделенные и облачные серверы на NVMe с выбором ОС, полным root-доступом и поддержкой 24/7. Тест-период до оплаты: выделенные серверы — 5 дней, VPS и облако — 5 часов.

Contact Info
LANGMARKET LLP
Rīga, Latvija

+371 00 000 000

Follow Us

Личный кабинет

Язык

Как создать и настроить swap-файл на VPS

Как создать и настроить swap-файл на VPS

Запустить на сервере одной командой (сначала проверьте содержимое скрипта ниже):

curl -sSL https://cp.lv/scripts/nastrojka-swap-vps.sh | sudo bash

…или через wget:

wget -qO- https://cp.lv/scripts/nastrojka-swap-vps.sh | sudo bash

Содержимое скрипта nastrojka-swap-vps.sh:

#!/usr/bin/env bash
# Создание swap-файла 2 ГБ + автозагрузка через fstab + swappiness
set -euo pipefail

SWAPFILE=/swapfile
SWAPSIZE=2G

# 1. Создать файл (fallocate, при отказе — dd)
if ! sudo fallocate -l "$SWAPSIZE" "$SWAPFILE"; then
  sudo dd if=/dev/zero of="$SWAPFILE" bs=1M count=2048
fi
sudo chmod 600 "$SWAPFILE"

# 2. Разметить как swap и включить
sudo mkswap "$SWAPFILE"
sudo swapon "$SWAPFILE"

# 3. Автозагрузка через fstab (только если ещё не прописан)
if ! grep -q "^${SWAPFILE} " /etc/fstab; then
  echo "${SWAPFILE} none swap sw 0 0" | sudo tee -a /etc/fstab
fi

# 4. swappiness=10 — сразу и на будущее (heredoc в файл sysctl.d)
sudo sysctl vm.swappiness=10
sudo tee /etc/sysctl.d/99-swappiness.conf > /dev/null << 'EOF'
vm.swappiness=10
EOF

sudo swapon --show
free -h
echo "Готово: swap-файл 2 ГБ активен, swappiness=10."

Swap — это файл или раздел на диске, который система использует как «запасную» память, когда заканчивается оперативная. На VPS проще всего создать swap-файл: команды fallocate, mkswap и swapon займут пару минут. Разберём процесс и настройку.

Зачем нужен swap

Swap не заменяет оперативную память (он в разы медленнее), но защищает от аварийного завершения процессов при пиковой нагрузке. Ядро выгружает в swap редко используемые страницы памяти, освобождая RAM для активных задач. Особенно полезно на тарифах с небольшим объёмом памяти.

Шаг 1. Проверьте текущий swap

sudo swapon --show
free -h

Если вывод swapon пустой — swap ещё не настроен.

Шаг 2. Создайте swap-файл

Создайте файл нужного размера. Например, 2 ГБ:

sudo fallocate -l 2G /swapfile

Если fallocate недоступен, используйте dd:

sudo dd if=/dev/zero of=/swapfile bs=1M count=2048

Ограничьте права, чтобы файл читался только root:

sudo chmod 600 /swapfile

Шаг 3. Отформатируйте и включите

Разметьте файл как swap и активируйте:

sudo mkswap /swapfile
sudo swapon /swapfile

Проверьте, что swap появился:

sudo swapon --show
free -h

Шаг 4. Включите автозагрузку

Пока swap работает только до перезагрузки. Чтобы он подключался автоматически, добавьте запись в /etc/fstab:

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Проверьте, что строка добавилась корректно:

grep swapfile /etc/fstab

Шаг 5. Настройте swappiness

Параметр vm.swappiness (0–100) определяет, насколько охотно ядро использует swap. На сервере обычно снижают его до 10, чтобы swap задействовался только при реальной нехватке RAM:

sudo sysctl vm.swappiness=10

Чтобы значение сохранялось после перезагрузки:

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

Сколько swap создавать

Оперативная память Рекомендуемый swap
до 2 ГБ равный объёму RAM
2–8 ГБ равный объёму RAM
более 8 ГБ 2–4 ГБ достаточно

Это ориентир, а не жёсткое правило: для базы данных swap лучше держать небольшим, чтобы избежать деградации производительности.

Как удалить swap

Если swap больше не нужен:

sudo swapoff /swapfile
sudo rm /swapfile

Затем удалите соответствующую строку из /etc/fstab.

Частые вопросы

Замедлит ли swap работу сервера? Swap на диске в десятки раз медленнее RAM. Пока данные в swap используются редко — влияния почти нет. Постоянная активная работа со swap означает нехватку памяти — стоит добавить RAM.

Swap-файл или swap-раздел? На VPS удобнее файл: его легко создать, изменить размер и удалить без переразметки диска. Раздел нужен редко.

Какой swappiness выбрать для сервера? Обычно 10 — swap подключается только при реальной нехватке памяти. Значение 60 (по умолчанию) слишком агрессивно для серверов с базами данных.

Можно ли создать swap на VPS с SSD? Да. На NVMe/SSD swap работает быстрее, чем на HDD, но всё равно медленнее RAM. Постоянного интенсивного использования лучше избегать, чтобы не изнашивать диск.

Итог

Swap-файл — простая страховка от нехватки памяти под нагрузкой. Создайте его через fallocate, включите swapon, пропишите в fstab и настройте swappiness=10. Если swap используется постоянно — это сигнал перейти на тариф с большим объёмом RAM.

Нужно больше памяти? Подберите тариф в разделе VPS на Linux, оформите аренду VPS или закажите Администрирование серверов.

Эдгарс Калейс

Эдгарс Калейс

Технический директор (CTO). Проектирует серверную платформу на NVMe и отвечает за производительность и надёжность инфраструктуры.