Подробный гайд: Как проверить текущий размер 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.TYPE—file(файл подкачки) или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).