Вот пошаговая инструкция по созданию и подключению swap-файла в Ubuntu Server:
1. Проверка наличия swap
Bash
swapon --show
Если вывод пустой — swap не активен.
2. Создание swap-файла
Замените 2G
на нужный размер.
Bash
sudo fallocate -l 2G /swapfile
Если fallocate
не поддерживается, используйте:
Bash
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress
3. Назначение прав
Bash
sudo chmod 600 /swapfile
4. Инициализация swap
Bash
sudo mkswap /swapfile
5. Активация swap
Bash
sudo swapon /swapfile
Проверь:
Bash
swapon --show
free -h
6. Автозагрузка swap при старте
Открой файл /etc/fstab:
Bash
sudo nano /etc/fstab
Добавь в конец:
Bash
/swapfile none swap sw 0 0
7. (Необязательно) Настройка swappiness
Чтобы система реже обращалась к swap:
Bash
sudo sysctl vm.swappiness=10
Чтобы применялось после перезагрузки:
Bash
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
Вот скрипт для автоматического создания и подключения swap-файла в Ubuntu Server:
Bash
#!/bin/bash
# Убедимся, что скрипт запущен с правами администратора
if [[ $EUID -ne 0 ]]; then
echo "Пожалуйста, запустите этот скрипт с правами суперпользователя (sudo)."
exit 1
fi
# Параметры swap-файла
SWAP_SIZE="2G"
SWAP_FILE="/swapfile"
# Проверяем наличие swap
if swapon --show | grep -q "$SWAP_FILE"; then
echo "Swap уже активен."
exit 0
fi
# Создание swap-файла
echo "Создаем swap файл размером $SWAP_SIZE..."
fallocate -l $SWAP_SIZE $SWAP_FILE || dd if=/dev/zero of=$SWAP_FILE bs=1M count=$(echo $SWAP_SIZE | sed 's/[^0-9]*//g') status=progress
# Назначаем правильные права
chmod 600 $SWAP_FILE
# Инициализируем swap
mkswap $SWAP_FILE
# Активируем swap
swapon $SWAP_FILE
# Добавляем в fstab для автозагрузки
echo "$SWAP_FILE none swap sw 0 0" >> /etc/fstab
# Настройка swappiness
echo "Настроим swappiness на 10..."
sysctl vm.swappiness=10
echo 'vm.swappiness=10' >> /etc/sysctl.conf
# Выводим результаты
echo "Swap файл создан и активирован. Размер: $SWAP_SIZE."
swapon --show
free -h
# Завершаем скрипт
exit 0
Скрипт создаст swap-файл, активирует его и добавит в fstab
для автозагрузки.