Ответ
Swap (подкачка) — это зарезервированное пространство на дисковом накопителе (HDD/SSD/NVMe), которое ядро Linux использует для выгрузки неактивных страниц памяти из RAM, когда её не хватает.
Расположение Swap:
- На отдельном разделе диска (например,
/dev/sda2). Это классический и наиболее производительный вариант. - В специальном файле (например,
/swapfile). Более гибкий вариант, не требующий переразбивки диска.
Как определить текущую конфигурацию Swap:
# Показать все активные области подкачки
sudo swapon --show
# NAME TYPE SIZE USED PRIO
# /swapfile file 2G 0B -2
# Посмотреть общее использование памяти и swap
free -h
# Увидеть, на каком устройстве размещён swap-раздел
lsblk -f | grep -A1 -B1 swap
# или
cat /proc/swaps
Практический пример создания swap-файла на сервере:
# 1. Создаём файл размером 4GB (размер должен быть кратен 4096 для производительности)
sudo fallocate -l 4G /swapfile
# 2. Устанавливаем безопасные права (только root)
sudo chmod 600 /swapfile
# 3. Помечаем файл как область swap
sudo mkswap /swapfile
# 4. Активируем swap
sudo swapon /swapfile
# 5. Делаем изменение постоянным, добавив в /etc/fstab
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Важно для DevOps:
- На современных серверах с большим объёмом RAM swap часто используется не для расширения памяти, а для возможности гибернации и обеспечения работы ядрового механизма oom_killer.
- В контейнеризированных средах (Docker, Kubernetes) управление swap обычно отключается (
swapoff -a), так как его поведение может негативно влиять на планировщик и детектирование нехватки памяти. - Для улучшения производительности на медленных дисках можно использовать zram — сжатый swap в оперативной памяти, который эффективен для рабочих нагрузок с высокой compressibility.