Есть ли тесты, показывающие, сколько запросов Comet в секунду может обрабатываться Node.js 0.6.8? - PullRequest
5 голосов
/ 25 января 2012

Причина, по которой я спрашиваю, состоит в том, что этот пост

http://amix.dk/blog/post/19577

Указывает, что Node.js 0.2.2, кажется, имеет порог 500 / с и превосходит Netx в 10 раз. В комментариях Райан Даль указывает, что это было возможно из-за ошибки, которая была впоследствии исправлена. Однако я не могу найти в оставшейся части поста или в другом месте никакого подтверждения того, что проблема была решена, и, если это так, обновленные тесты. Сейчас у нас намного больше версий, чем указано выше, и мне интересно, есть ли какие-либо тесты, формальные или иным образом относящиеся к запросам Comet / сек.

Если нет ориентиров, было бы хорошо узнать в общих чертах, остается ли проблема, отмеченная Амиром, все еще не решенной. 500 комет в секунду - порог, который может быть достигнут сайтом небольшого размера, ориентированным на чат / игру.

1 Ответ

2 голосов
/ 26 января 2012

node.js прошел долгий долгий путь от 0.2.2.Кажется вероятным, что были также проблемы реализации с архитектурой, обсуждаемой в связанном посте, поскольку комментарии предполагают, что они не рассматривали использование процессов с несколькими узлами с балансировщиком нагрузки.

Это явно необходимо для высокопроизводительных приложений - действительно, последний абзац node.js официального сообщения о разделе гласит:

Но как насчетмногопроцессорный параллелизм?Разве потоки не нужны для масштабирования программ на многоядерные компьютеры?Вы можете запустить новые процессы с помощью child_process.fork (), эти другие процессы будут запланированы параллельно.Для балансировки нагрузки входящих соединений между несколькими процессами используйте модуль кластера.

Теперь, учитывая, что один узел 0.2.2 процесс использовал% 10 ресурсов Netty (как упомянуто в ссылочном посте OP)), тогда они могли бы запустить 10 процессов узла на одном и том же оборудовании, что вызывает вопрос: если Netty в 10 раз быстрее, чем узел, но использует ресурсы в 10 раз, разве их производительность на самом деле не была такой же?Между тем, производительность узлов значительно улучшилась в >=0.6.0 выпусках, , особенно на машинах под управлением Windows , которая теперь поддерживается изначально.См. Тесты Windows из 0.6.0 заметок о выпуске :

Тестирование http было выполнено с 600 клиентами в сети 10GE, обслуживаемой с трех машин формирования нагрузки.

                            v0.4.12 (windows)   v0.6.0 (windows)
http_simple.js /bytes/1024  3858 r/s            5823 r/s
io.js read                  12.41 mB/s          26.51 mB/s
io.js write                 12.61 mB/s          33.58 mB/s
startup.js                  152.81 ms           52.04 ms

Между тем, хотя никто, кажется, не хочет говорить о , что именно 1029 * именно они делают, кажется, что некоторые из самых высокопоставленных игроков в сфере трафика обращаются к node.js из-за чрезвычайно высокойЕмкость систем.Google, Yahoo, Mozilla, LinkedIn и запуск i.TV представлены в статье Узел в масштабе , опубликованной вчера на venturebeat.com.

Пока яне удалось найти точные ориентиры для кометы / секунды, кажется очевидным, что при правильной архитектуре системы это намного, намного выше 500.

...