Выбор ответа Junior Производительность обновлено

Too many open files

Вопрос

Сервис падает с EMFILE: Too many open files. Что проверить первым?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Лимит дескрипторов процесса и сколько открыто. EMFILE значит, что процесс упёрся в свой лимит открытых дескрипторов, в которые входят и сокеты.

Варианты ответа

  1. Свободное место на диске с данными сервиса (df -h)
  2. Права на каталог с логами и временными файлами
  3. Число свободных inode на разделе (df -i)
  4. Лимит дескрипторов процесса и сколько открытоправильный ответ

Разбор

EMFILE значит, что процесс упёрся в свой лимит открытых дескрипторов, в которые входят и сокеты. Смотрят текущий лимит и сколько реально открыто; если число растёт без остановки, это утечка (не закрываются соединения или файлы). Нехватка места даёт ENOSPC, inode тоже ENOSPC, права EACCES.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме