Ошибки · Решение
Node.js EMFILE: что означает ошибка и как исправить
Процесс исчерпал доступное число файловых дескрипторов.
Короткий ответ
Node.js EMFILE — системная ошибка «Too many open files». Для диагностики важнее всего поля error.syscall, error.path/address и контекст операции.
Что означает ошибка
Процесс исчерпал доступное число файловых дескрипторов.
Возможные причины
- Много файлов/сокетов открываются параллельно.
- Дескрипторы не закрываются после ошибок.
- Лимит open files слишком мал для нормальной нагрузки.
Что проверить
- Проверьте количество fd в /proc/<pid>/fd.
- Сопоставьте рост fd с конкретным кодом/нагрузкой.
- Проверьте ulimit/systemd LimitNOFILE для процесса.
Безопасные шаги
- Закрывайте streams/sockets во всех ветках ошибок.
- Ограничьте параллелизм открытия файлов.
- Поднимайте fd limit только после исключения утечки.
Только безопасные обратимые действия. Опасные шаги — только по официальной инструкции и с пониманием рисков.
Когда нужен сервис
- Если Node.js EMFILE остаётся после проверки syscall и ресурса, приложите stack trace, error.syscall и связанные path/address/port владельцу сервиса или инфраструктуры.
Похожие ошибки
- /errors/nodejs-eexist/
- /errors/nodejs-eisdir/
- /errors/nodejs-enotdir/
Что учитывать
Точная причина зависит от версии ПО/прошивки, полного текста ошибки и контекста. Официальная инструкция имеет приоритет.
Официальный источник
Расшифровка сверена с официальными страницами поддержки из источников ниже. Редакция N1RO не диагностировала ваш конкретный случай.