Если вы заметили, что использование памяти на вашем сервере или компьютере резко растёт — возможно, есть утечка. Чтобы её диагностировать, можно использовать простой bash-скрипт и cron для автоматического анализа.
#!/bin/bash
# Порог использования памяти в процентах
THRESHOLD=85
# Получаем процент использования памяти
MEM_USAGE=$(free | grep Mem | awk '{print ($3 / $2) * 100}')
# Округляем до целого числа
MEM_USAGE_INT=$(echo "$MEM_USAGE" | awk '{printf("%d\n",$1 + 0.5)}')
if (( $(echo "$MEM_USAGE_INT > $THRESHOLD" | bc -l) )); then
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ⚠️ Высокое использование памяти: ${MEM_USAGE_INT}%"
echo "Топ 10 процессов по использованию памяти:"
ps -eo pid,comm,%mem --sort -%mem | head -n 11
echo "---------------------------------------------"
fi
chmod +x ~/check_memory.sh
crontab -e
Добавьте строчку:
*/5 * * * * /home/ваш_пользователь/check_memory.sh >> /var/log/memory_usage.log 2>&1
Все результаты будут записываться в файл:
/var/log/memory_usage.log
tail -f /var/log/memory_usage.log
[2025-04-05 14:30:00] ⚠️ Высокое использование памяти: 87%
Топ 10 процессов по использованию памяти:
PID COMMAND %MEM
1234 firefox 25.3
5678 code 18.2
9876 java 12.1
...
---------------------------------------------
Этот способ позволяет быстро выявлять процессы, которые могут быть источником утечки памяти. Его легко адаптировать под отправку email, Telegram-уведомления или интеграцию с Zabbix.
Комментарии