Я пытаюсь диагностировать случайные всплески использования памяти на сервере Linux. Если всплески достаточно высоки, срабатывает OOM Killer, в результате чего / var / log / messages содержит полезный дамп списка процессов на тот момент.
Тем не менее, я также испытываю всплески, которые недостаточно серьезны, чтобы вызвать срабатывание OOM Killer, но все же достаточно, чтобы вызвать интенсивное использование подкачки. Есть ли способ автоматически регистрировать таблицу процессов в такие периоды?
Вы можете использовать смем утилита для сбора информации об использовании памяти нашей системой и ее дальнейшего анализа. Я использовал его, чтобы выяснить, какие процессы используют подкачку, сделав снимок использования подкачки системы за один раз, а затем сделав другие снимки позже и сравнив их.
Инструменты мониторинга, такие как nagios
или ganglia
может собирать системные метрики и строить графики. Более простое решение - использовать однострочник и поместить его в бесконечный цикл, cron
и т.д...
free |awk '/Swap:/ {if(int($3/$2*100) > 50)system("echo Swap usage is over 50% && top -abn 1 > process_dump_`date +%Y-%m-%d_%H:%M`.txt")}'