Created
January 29, 2026 11:24
-
-
Save MakStashkevich/512f41317c117025f1d46112b6600072 to your computer and use it in GitHub Desktop.
Setup Swap RAM for VPS
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/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