Создание и настройка swap-пространства: полное руководство
Что такое swap в Linux, как создать swap-файл, настроить swappiness, мониторинг использования swap и оптимизация производительности памяти сервера.
Содержание
Создание и настройка swap-пространства: полное руководство
Swap-пространство — это виртуальная память на диске, которую операционная система использует, когда физическая RAM заполнена. Оно предотвращает сбои системы при нехватке памяти и позволяет приложениям продолжать работу. В этом руководстве рассматривается создание swap-файла, его настройка и мониторинг.
Swap не заменяет RAM; он служит лишь аварийным буфером. Постоянно высокое использование swap — признак недостаточного объёма RAM.
Что такое swap и когда он нужен?
Swap-пространство можно создать двумя способами:
| Метод | Преимущество | Недостаток |
|---|---|---|
| Swap-раздел | Немного быстрее | Фиксированный размер |
| Swap-файл | Гибкий, изменяемый размер | Немного медленнее |
Swap-файлы предпочтительны на современных системах, так как их размер можно изменять динамически.
Когда нужен swap?
- RAM 2 ГБ или меньше
- Запуск приложений с высоким потреблением памяти
- Использование режима гибернации
- Как буфер безопасности против неожиданных пиков потребления памяти
Проверка текущего состояния swap
# Показать использование swap
swapon --show
# Сводка по памяти и swap
free -h
# Подробная информация о памяти
cat /proc/meminfo | grep -i swap
# Список swap-областей
cat /proc/swaps
Создание swap-файла
Шаг 1: Создать swap-файл
# Создать swap-файл 2 ГБ (метод dd)
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
# Или с fallocate (быстрее)
sudo fallocate -l 2G /swapfile
# Проверить размер файла
ls -lh /swapfile
Шаг 2: Установить права доступа
# Только root может читать/писать
sudo chmod 600 /swapfile
# Проверить права
ls -la /swapfile
# Вывод: -rw------- 1 root root 2.0G ...
Шаг 3: Форматировать как swap
# Пометить как swap-пространство
sudo mkswap /swapfile
Шаг 4: Включить swap
# Активировать swap
sudo swapon /swapfile
# Проверить
swapon --show
free -h
Шаг 5: Сделать постоянным
Добавьте в /etc/fstab, чтобы swap активировался автоматически при перезагрузке:
# Добавить в /etc/fstab
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
# Проверить
cat /etc/fstab | grep swap
Изменение размера swap
Чтобы увеличить существующий swap-файл:
# Отключить swap
sudo swapoff /swapfile
# Создать новый файл большего размера (4 ГБ)
sudo fallocate -l 4G /swapfile
# Переформатировать
sudo mkswap /swapfile
# Снова включить
sudo swapon /swapfile
# Проверить
free -h
Настройка swappiness
Swappiness — значение от 0 до 100, определяющее агрессивность использования swap ядром:
| Значение | Поведение |
|---|---|
| 0 | Использовать swap как можно меньше |
| 10 | Рекомендуется для серверов |
| 60 | Значение по умолчанию Linux |
| 100 | Агрессивное использование swap |
# Показать текущее значение swappiness
cat /proc/sys/vm/swappiness
# Изменить временно (сбрасывается при перезагрузке)
sudo sysctl vm.swappiness=10
# Изменить постоянно
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
# Применить изменения
sudo sysctl -p
swappiness=10 рекомендуется для серверов. Это минимизирует использование swap до исчерпания RAM и снижает дисковый I/O.
Мониторинг использования swap
# Текущее состояние памяти и swap
free -h
# Непрерывный мониторинг (каждые 2 секунды)
watch -n 2 free -h
# Какие процессы используют swap?
for file in /proc/*/status; do
awk '/VmSwap|Name/{printf $2 " " $3 "\n"}' $file
done | sort -k 2 -n -r | head -10
# Мониторинг с vmstat
vmstat 2 5
Отключение swap
# Временно отключить
sudo swapoff /swapfile
# Удалить навсегда
sudo swapoff /swapfile
sudo rm /swapfile
# Также удалите строку swap из /etc/fstab
Перед отключением swap убедитесь, что достаточно свободной RAM. Иначе система может столкнуться с ошибкой OOM (Out of Memory).
Заключение
Swap-пространство важно для стабильности системы, особенно на серверах с ограниченным объёмом RAM. Создание swap-файла, оптимизация значения swappiness и регулярный мониторинг использования swap улучшат управление памятью вашего сервера. Однако swap — не постоянное решение проблемы нехватки RAM; при постоянно высоком использовании swap рассмотрите увеличение объёма RAM.
Связанные статьи
Подключение к VDS по SSH: PuTTY, терминал и SSH-ключи
Пошаговое руководство по SSH-подключению к Linux VDS: PuTTY, терминал, аутентификация по ключу, правило фильтрации Path Panel и советы по безопасности.
Подключение к Windows VDS по RDP: полное руководство
Пошаговое руководство по RDP-подключению к Windows Server VDS: настройка, безопасность NLA, правило фильтрации Path Panel и устранение неполадок.
Смена ОС VDS-сервера: пошаговое руководство (Reinstall)
Смена операционной системы VDS через панель REXE: советы по резервному копированию, поддерживаемые дистрибутивы Linux и версии Windows Server.