Где находится Swap и какое устройство он использует?

«Где находится Swap и какое устройство он использует?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Swap (подкачка) — это зарезервированное пространство на дисковом накопителе (HDD/SSD/NVMe), которое ядро Linux использует для выгрузки неактивных страниц памяти из RAM, когда её не хватает.

Расположение Swap:

  1. На отдельном разделе диска (например, /dev/sda2). Это классический и наиболее производительный вариант.
  2. В специальном файле (например, /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.