Skip to content

Instantly share code, notes, and snippets.

@MakStashkevich
Created January 29, 2026 11:24
Show Gist options
  • Select an option

  • Save MakStashkevich/512f41317c117025f1d46112b6600072 to your computer and use it in GitHub Desktop.

Select an option

Save MakStashkevich/512f41317c117025f1d46112b6600072 to your computer and use it in GitHub Desktop.
Setup Swap RAM for VPS
#!/usr/bin/env bash
set -e
### === НАСТРОЙКИ ===
SWAP_SIZE_GB=4 # размер swap в ГБ
SWAP_FILE="/swapfile"
SWAPPINESS=10 # 0–100
### =================
echo "==> Настройка swap"
echo "Swap file: $SWAP_FILE"
echo "Swap size: ${SWAP_SIZE_GB}G"
echo "Swappiness: $SWAPPINESS"
echo
# Проверка root
if [[ $EUID -ne 0 ]]; then
echo "Ошибка: запускать нужно от root"
exit 1
fi
# Отключаем swap если есть
if swapon --show | grep -q "$SWAP_FILE"; then
echo "==> Отключаем существующий swap"
swapoff "$SWAP_FILE"
fi
# Удаляем старый swapfile
if [[ -f "$SWAP_FILE" ]]; then
echo "==> Удаляем старый swapfile"
rm -f "$SWAP_FILE"
fi
# Создаём swapfile
echo "==> Создаём swapfile ${SWAP_SIZE_GB}G"
fallocate -l "${SWAP_SIZE_GB}G" "$SWAP_FILE" 2>/dev/null || \
dd if=/dev/zero of="$SWAP_FILE" bs=1M count=$((SWAP_SIZE_GB * 1024))
chmod 600 "$SWAP_FILE"
# Форматируем и включаем
mkswap "$SWAP_FILE"
swapon "$SWAP_FILE"
# Обновляем fstab (чисто)
echo "==> Обновляем /etc/fstab"
sed -i "\|$SWAP_FILE|d" /etc/fstab
echo "$SWAP_FILE none swap sw 0 0" >> /etc/fstab
# Настраиваем swappiness
echo "==> Устанавливаем vm.swappiness=$SWAPPINESS"
sysctl -w vm.swappiness="$SWAPPINESS" > /dev/null
cat <<EOF >/etc/sysctl.d/99-swappiness.conf
vm.swappiness=$SWAPPINESS
EOF
# Результат
echo
echo "==> Готово"
swapon --show
free -h
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment