Одна из самых частых и коварных проблем в Linux - забытый процесс без лимитов.
Это может быть:
- cron задача
- systemd сервис
- Python скрипт
- backup или лог-парсер
Днем он почти незаметен.
А ночью начинает:
- бесконечно писать в лог
- съедать память
- плодить дескрипторы
- держать CPU на 100%
К утру сервер либо:
- перестает отвечать по SSH
- начинает дропать сервисы
Причина почти всегда одна - нет лимитов и мониторинга.
Минимум, что нужно проверять:
- сколько памяти потребляет процесс
- растет ли число файловых дескрипторов
- жив ли он неделями без рестарта
- ограничен ли он через systemd
Найти самые прожорливые процессы
ps aux --sort=-%mem | head
# Проверить количество открытых файлов у процесса
ls /proc/PID/fd | wc -l
# Посмотреть лимиты процесса
cat /proc/PID/limits
# Если systemd - проверить ограничения сервиса
systemctl show your-service.service | grep -E 'LimitNOFILE|MemoryLimit'