Потребовались усилия более 4 (!) программистов, что бы найти такую примитивную вещь, как утечку файловых дескрипторов и после этого мы видим «Node.js работает просто великолепно»
Хватило бы и одного, знающего, где искать. Проблема с неуправляемыми ресурсами (unmanaged resources) достаточно общая и не касается конкретной среды разработки.
Т.е. ребята захотели нафигачить простейший сервис, сразу же наткнулись на серьёзную проблему, потребовавшую участия большого количества людей — это равнозначно ситуации, когда подавляющее большинство пользователей даже не встречало таких проблем в Erlang'е и их надо искать в Гугле? Ок.
Вопрос в том, насколько эти проблемы серьёзны. Что-то мне говорит, что проблемы, для решения которых понадобилось 4 человека, весьма серьёзны. В это же время люди типа практически в одиночку делают лучший существующий опенсорцный стриминговый сервер, ок.
Да ладно вам. Просто надо было найти проблему быстро (production). Разбили поиски на 4 человек.
Думаю, в любом проекте в случае проблемы с production вся команда помогает найти и устранить проблему, если не удалось её найти мгновенно.
Проблема была описана выше, — отсутствие написанного обработчика на обрыв соединения. При должном тестировании нашли бы её раньше еще на staging и решили бы не в таком авральном режиме.
Суть в том, что если апстрим умеет сам управлять потоками (типа node.js streams или ruby rainbows), то надо эту опцию отключать. Ибо перед перед передачей клиента ответ накапливается в буфере (и скидывается на диск, если не вмещается в буфера).
Nodeload2: Механизм загрузок — Перезагрузка