👁 В проде иногда начинается странное: сервис работает, но внезапно упирается в Too many open files. Перезапуск — костыль, а проблема остаётся. Чаще всего это утечка файловых дескрипторов. Найти её можно без остановки сервиса, если смотреть прямо в /proc.
📝 Быстрая проверка количества открытых дескрипторов
У каждого процесса есть директория /proc/PID/fd, где лежат все открытые дескрипторы. Если число постоянно растёт — у тебя утечка. Это особенно критично для сервисов с сокетами, файлами или прокси.
ls /proc/12345/fd | wc -l
📝 Определение типа утечки (сокеты, файлы, pipe)
Можно посмотреть, что именно накапливается: файлы, сокеты или что-то ещё.
ls -l /proc/12345/fd
📌 В выводе будет видно: socket:[12345], pipe:[...] или реальные файлы. Это сразу даёт понимание, где копать — сеть, файловая система или межпроцессное взаимодействие.
📝 Мониторинг роста дескрипторов в динамике
Чтобы увидеть проблему в реальном времени, можно наблюдать за ростом дескрипторов. Если значение стабильно растёт под нагрузкой — это классическая утечка, и её нужно ловить уже на уровне кода или библиотек.
watch -n 1 "ls /proc/12345/fd | wc -l"
❗️ Утечки дескрипторов — одна из самых неприятных прод-проблем: сервис вроде жив, но постепенно умирает. /proc позволяет поймать это за минуты, без рестартов и сложных инструментов.
tags: #linux #файлы #полезно



