Повідомлення High swap space usage на дашборді Zabbix
Повідомлення “Linux: High swap space usage (less than 50% free)” у Zabbix — це класичний “дзвіночок” для будь-якого системного адміністратора. Swap (файл або розділ підкачки) діє як рятувальний круг, коли фізична оперативна пам’ять (RAM) сервера вичерпується. У цій статті я розповім, як розібратися з повідомленням Zabbix High swap space usage на прикладі Raspberry Pi 5, змінити параметр vm.swappiness та очистити файл підкачки без перезавантаження системи.
Хоча сам по собі swap – це корисний та необхідний механізм, його активне використання сигналізує про те, що сервер працює на межі своїх можливостей, оскільки швидкість роботи диска (навіть швидкого NVMe, не кажучи вже про SD-картки в одноплатних комп’ютерах) в сотні разів нижча за швидкість RAM.

На дашборді Zabbix видно, що моя Rasberry Pi 5 на 8 Гб, майже не завантажена, тому необхідно розібратися в причині.
Окрім використання пам’яті, важливо стежити й за температурним режимом вашої плати; читайте про моніторинг температури Raspberry Pi за допомогою Zabbix
Поточні значення та причина, чому так трапляється
Давайте подивимося це значення безпосередньо на хості запустивши команду htop

Системою було визначено 2Гб під своп, з них використовується 1,3 Гб, що звісно більше 50% і про що чесно сповістив заббікс. Тепер треба проаналізувати хто став джерелом цього свапу.
За замовчуванням Zabbix генерує тригер високого рівня (High), коли обсяг вільного простору у swap падає нижче 50%.
Основні причини:
- Агресивна поведінка ядра (Swappiness): У більшості дистрибутивів Linux параметр
vm.swappinessвстановлено на значення60(з діапазону 0-100). Це означає, що система почне превентивно перекидати кешовані або неактивні дані у swap задовго до того, як RAM буде повністю вичерпана. - “Важкі” контейнери та сервіси: Сучасні інфраструктури часто покладаються на стек Docker (наприклад, Nginx, бази даних, WordPress з плагінами). Якщо контейнерам не задано жорсткі ліміти використання пам’яті, вони можуть поступово “з’їсти” всю доступну RAM і витіснити інші процеси в підкачку.
- Витоки пам’яті (Memory Leaks): Деякі аплікації або фонові скрипти можуть некоректно звільняти пам’ять після завершення своїх операцій, поступово роздуваючись у розмірах і змушуючи систему скидати решту даних на диск.
Часті причини витоку пам’яті криються у фонових сервісах; дізнайтеся, як налаштувати моніторинг активності докер-контейнерів у Zabbix.
Значення Swappiness
Як раніше було сказано, значення 60 закладено системою за замовчанням. Необхідно перевірити, чи дійсно це так виконавши команду:
cat /proc/sys/vm/swappiness
60
Swappiness – це параметр Linux (від 0 до 100), який визначає, наскільки активно ядро переносить дані з оперативної пам’яті (RAM) у файл або розділ підкачки (swap).
В моєму випадку треба зменшити значення Swappiness з 60 наприклад на 10, щоб система довше використовувати RAM, не чіпаючи свап. Це можна зробити командою
sudo sysctl vm.swappiness=10
vm.swappiness = 10
Також записати це значення, щоб воно застосовувалось на рівні ядра після перезавантаження. У випадку моєї системи, загальні налаштування зберігаються у файлі 98-rpi.conf в директорії /etc/sysctl.d. Щоб не вносити корективи в оригінальний файл конфігурації, можна просто створити нову власну конфігурацію, яка буде завантажуватися після основної:
echo "vm.swappiness=10" | sudo tee /etc/sysctl.d/99-swappiness.conf
Застосовуємо налаштування без перезавантаження параметрів та без перезавантаження хосту виконавши команду:
sudo sysctl --system
...
vm.swappiness = 10
Очищення Swap
Якщо ви бачите, що фізичної пам’яті (RAM) зараз достатньо, а swap просто забитий старими даними, які ядро не поспішає повертати назад, ви можете примусово перемістити їх у RAM.
Попередження: робіть це лише тоді, коли обсяг вільної RAM гарантовано перевищує обсяг зайнятого swap!
sudo swapoff -a && sudo swapon -a
Ця команда вимкне підкачку, перенесе дані назад в оперативну пам’ять і знову її увімкне.
Тригер у Zabbix перейде у стан “Resolved”.

На скріншоті видно, що значення Swap 1.3 Гігабайти перемістилось в ОЗУ яке відповідно збільшилось. Також в інтерфейсі Zabbix спрацював тригер, і повідомлення зникло.

Висновки
Після виконання swapoff -a && swapon -a та налаштування параметра vm.swappiness=10, повідомлення “High swap space usage” у Zabbix зникне, а графіки моніторингу повернуться до стабільної зеленої зони.
Очистивши сповіщення на дашборді, не забудьте про захист самої системи моніторингу та дізнайтеся, як обмежити доступ до Zabbix лише з локальної мережі через Apache.
Файл підкачки – це важливий інструмент безпеки для запобігання падінню системи, але він не повинен використовуватися як розширення оперативної пам’яті для штатної роботи. Зменшення агресивності ядра щодо swap-файлу (swappiness=10) та грамотне управління ресурсами гарантують швидку, стабільну та передбачувану роботу вашої ІТ-інфраструктури.
