Привет, админы! Сегодня разберем, как выявлять утечки памяти в Linux и не допускать их на продакшене. 🚀
🔍 Как понять, что память утекает?
Частые признаки:
✅ Постепенный рост потребления RAM процессом
✅ ОЗУ забивается, а swap активно используется
✅ Система тормозит, перезапуск помогает, но ненадолго
🛠 Проверяем потребление памяти
🔹 Команда
top или htop Сортируем по памяти (
Shift + M в top):
top
или
htop
🔹 Смотрим самые "прожорливые" процессы
ps aux --sort=-%mem | head -10
🔹 Слежка за конкретным процессом
pidstat -r -p <PID> 5
Замените
<PID> на ID подозрительного процесса.🔎 Поиск утечек памяти
🔹 Используем
pmapПоказывает детали по памяти процесса:
pmap -x <PID>
🔹 Тестируем
valgrind (для C/C++ программ) Если пишете на C/C++, проверяйте утечки так:
valgrind --leak-check=full ./your_program
🔹 Проверяем с
smemАнализ потребления памяти всеми процессами:
smem -t -k | head -20
🔥 Как предотвратить утечки?
✅ Регулярно перезапускайте сервисы (
systemctl restart your_service) ✅ Мониторьте память с
prometheus + grafana ✅ Используйте
systemd с ограничениями на RAM:
[Service]
MemoryMax=500M
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin