Подробный гайд: Как проверить текущий размер swap

Проверка swap в Linux: free -h, swapon --show, /proc/swaps и /proc/meminfo покажут размер и использование подкачки

2026.04.24                  


Подробный гайд: Как проверить текущий размер swapПодробный гайд: Как проверить текущий размер swap

1. Команда free (самый быстрый способ)

free -h

-h выводит данные в человеческом формате (КБ, МБ, ГБ). Без флага размер покажется в килобайтах.

Пример вывода:

              total        used        free      shared  buff/cache   available
Mem:          15Gi       4.2Gi       8.1Gi       256Mi       2.8Gi        10Gi
Swap:         4.0Gi       128Mi       3.9Gi

Что смотреть:

  • Swap: total — общий выделенный размер подкачки.
  • used — сколько swap уже используется.
  • free — сколько осталось свободно.

Альтернативные форматы:

free -m   # в мегабайтах
free -k   # в килобайтах
free -g   # в гигабайтах

2. Команда swapon (подробная информация по устройствам)

swapon --show

или (для старых систем):

swapon -s

Пример вывода:

NAME       TYPE      SIZE USED PRIO
/swapfile  file      4G   128M   -2
/dev/sda2  partition 2G     0B   -3

Столбцы:

  • NAME — путь к файлу или разделу, используемому как swap.
  • TYPEfile (файл подкачки) или partition (отдельный раздел).
  • SIZE — размер конкретного swap-устройства.
  • USED — занятая часть.
  • PRIO — приоритет использования (чем больше число, тем выше приоритет; -1 и ниже используются по умолчанию).

3. Чтение /proc/swaps (для скриптов и парсинга)

cat /proc/swaps

Пример:

Filename                Type        Size    Used    Priority
/swapfile               file        4194300 131072  -2
Внимание: размер указан в килобайтах. Для перевода в ГБ разделите на 1048576.

4. Через /proc/meminfo (низкоуровневый источник)

grep -i swap /proc/meminfo

Вывод:

SwapCached:        10240 kB
SwapTotal:       4194300 kB
SwapFree:        4063228 kB
  • SwapTotal — общий размер.
  • SwapFree — свободное место.
  • SwapTotal - SwapFree = используемый swap.

5. Визуальные мониторинговые утилиты

Утилита Как вызвать Где смотреть
top top Строка Swap: в шапке
htop htop Строка Swp: (включается в F2 → Display options → Show swap memory)
btop / bashtop btop В блоке памяти отдельная шкала SWAP
vmstat vmstat 1 Колонки si/so (обмен с диском), но не размер

Как правильно интерпретировать результаты

Ситуация Что это значит
Swap: 0B или пустой /proc/swaps Swap не создан или не активирован
used ≈ 0, total > 0 Swap есть, но система обходится ОЗУ (норма)
used стабильно > 50% от total Вероятен дефицит физической памяти. Стоит проверить процессы (top, ps aux --sort=-%mem)
Постоянный рост used без снижения Возможна утечка памяти или нехватка ОЗУ под текущие задачи

Что делать, если swap = 0?

1. Проверьте, есть ли файл/раздел:
   ls -lh /swapfile
   fdisk -l | grep -i swap
2. Активируйте вручную (если файл существует):
   sudo swapon /swapfile
3. Добавьте в /etc/fstab для автозагрузки:
   /swapfile none swap sw 0 0

Полезные советы

  • free и swapon не требуют sudo для просмотра, но для управления (swapon/swapoff) нужны права администратора.
  • В системах с systemd можно проверить статус сервиса подкачки: systemctl status systemd-swap (если используется расширение systemd-swap).
  • Для серверов рекомендуется иметь swap размером от 50% до 100% от ОЗУ (до 4 ГБ для машин с >8 ГБ ОЗУ, если не используется hibernation).
  • Для проверки активности подкачки в реальном времени используйте: vmstat 1 или sar -W 1 (пакет sysstat).