Категории

Диагностика утечки памяти

2025-06-02 14:09:02 | Linux

Как отслеживать утечку памяти в Ubuntu

Если вы заметили, что использование памяти на вашем сервере или компьютере резко растёт — возможно, есть утечка. Чтобы её диагностировать, можно использовать простой bash-скрипт и cron для автоматического анализа.

1. Создайте скрипт


#!/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

2. Сделайте его исполняемым

chmod +x ~/check_memory.sh

3. Настройте запуск через cron

crontab -e

Добавьте строчку:

*/5 * * * * /home/ваш_пользователь/check_memory.sh >> /var/log/memory_usage.log 2>&1

4. Где хранятся данные?

Все результаты будут записываться в файл:

/var/log/memory_usage.log
⚠️ Если файла нет, значит скрипт ещё не запускался или порог не был превышен.

5. Как проверить лог?

tail -f /var/log/memory_usage.log

6. Пример вывода в логе

[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.

Комментарии

фвыа 18.07.2025 10:57
фыва

Оставить комментарий

← Назад к списку статей