Заметка очень короткая и призвана администраторам помочь быстро найти процессы которые максимально используют пространство swap. Что делать с этими процессами — это уже отдельная тема, главное найти кто потребляет swap.
Подробности ниже…
Исходные данные: ОС Oracle Linux 7;
Задач: Найти потребителя SWAP
Типичная ситуация на сервере с системой мониторинга — это аларм вида:
prod-srv-01 Low free swap space (free: 0.15 %, threshold: 10%, alert started: 8.79 %)
Вначале немного теории, о том как получить информацию о распределении памяти процессами в Linux.
Теперь идем на сервер и смотрим:
[root@prod-srv-01 ~]# free -h total used free shared buff/cache available Mem: 15G 2.9G 168M 5.6G 12G 6.8G Swap: 5.0G 5.0G 0B [root@prod-srv-01 ~]# vmstat procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 3 0 5242876 177632 5664 12976844 0 0 1102 189 0 0 21 2 70 7 0
Мы видим, что swap заполнен на 100% — это плохо.
Попробуем быстро выяснить кто основной потребитель, для этого обратимся к /proc/*/status
Ниже простой сценарий на bash который выдаст нам список потребителей swap:
for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 2 -n -r | less
Результат будет длинным, я покажу только TOP потребителей:
Мы видим, что основной потребитель — это процесс ora_j001_bs. На сервере установлен Oracle и один из процессов потребляет swap.
На втором месте мы видим процесс rsyslogd — думаю он в представлении не нуждается.
Если на потребителя №1 мы не можем повлиять быстро, то на потребителя №2 (rsyslogd) можем — это попытаться его перазапустить.
Выполняем перезапуск rsyslogd:
systemctl restart rsyslog
И смотрим состояние swap:
[root@prod-srv-01 ~]# free -h total used free shared buff/cache available Mem: 15G 2.8G 301M 5.6G 12G 6.9G Swap: 5.0G 3.4G 1.6G
Мы видим, что стало доступно 1.6 GB, а это уже более 30% от размера swap, что вполне нас должно устроить на первое время.
На этом все, до скорых встреч. Если у Вас возникли вопросы или Вы хотите чтобы я помог Вам, то Вы всегда можете связаться со мной разными доступными способами.
Профессионально занимаюсь системным администрированием Linux -серверов и баз данных (MySQL, POstgreSQL) на протяжении последних 24 лет.
Спасибо за статью! Кстати в тексте опечатка «я показу»
Спасибо Вам, опечатку поправил.
Благодарю за статью, в особенности за простой сценарий выявления потребителей SWAP.