Ответ 1
Для OP, казалось, был оценен комментарий, я положил его в ответ в надежде, что он поможет другим пользователям.
Мне кажется, что проблема связана с тем, что многие дескрипторы используются, вызывая writeFileSync
. Ссылка, помещенная в вопросе, также подтверждает эту идею.
На самом деле, я все еще пытаюсь выяснить, существует ли способ узнать, когда запись действительно завершена под капотом, а не только с точки зрения nodejs. Может быть, этот параметр может помочь, но я предполагаю, что он страдает от одной и той же проблемы.
Во всяком случае, можно обойти эту проблему, внедряя пул писателей с очередью, на которую следует отправлять свои запросы на запись.
Про является то, что количество открытых дескрипторов может находиться под контролем. Действительно, из-за проблемы, упомянутой в ссылке, размещенной OP, но, конечно, можно избежать использования всех ресурсов системы.
С другой стороны, к сожалению, существует проблема, заключающаяся в том, что это решение имеет тенденцию занимать гораздо больший объем памяти (поскольку на самом деле там стоят его документы, пока они ждут доступного рабочего).
Конечно, это может быть подходящее решение для пакетных запросов, разделенных во времени, но, возможно, оно не подходит с постоянными постоянными нагрузками во времени.