Сценарий:
Использование главного сценария для порождения переменного числа дочерних процессов разное количество раз для выполнения нагрузочного тестирования на сервере.
Мастер-скрипт сначала порождает всех дочерних элементов, которые он может (в соответствии с настройками конфигурации), а затем, когда дочерние процессы завершают работу, если в конфигурации требуется больше запусков, то запускаются новые дочерние процессы.
То, что я вижу, - это немедленная ошибка при попытке ускорить 83-й дочерний процесс. 83
Я ничего не делаю, чтобы явно закрыть файлы, открытые как часть процесса порождения потомков, но, вероятно, это не работа с кодом открытия, а с кодом модуля child_processes?
Мне очень любопытно магическое число 82 дочерних процессов. Похоже, это указывает на ограничение узла или комбинацию узлов в моей системе?
В идеале, у меня есть недостаток знаний о том, что ответ на этот вопрос или кто-то может предложить альтернативный способ запуска дочерних процессов сценариев, которые не будут страдать от этой проблемы?
Мне также интересно узнать о статусе API Web Worker, который поступает в NodeJS. Кто-нибудь знает что-нибудь об этом?
Подробности:
- NodeJS v0.4.7
- Mac OS X v10.6.7
- ulimit -n = 256
- магическое число порожденных детей, которые будут успешно бегать = 82
(это означает, что> 82 порожденных процесса вызовут ошибку «слишком много открытых файлов»)
Спасибо за любую помощь.