2012-01-25 12 views
5

Powód pytam jest to, że ten postCzy są jakieś testy porównawcze pokazujące, ile żądań komet na sekundę może obsłużyć Node.js 0.6.8?

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

Wskazuje node.js 0.2.2 Wydaje się, że próg 500/s i jest lepsza niż 10x przez Netty. W komentarzach Ryan Dahl wskazuje, że był to prawdopodobnie błąd, który został następnie naprawiony. Jednak w pozostałej części posta lub w innym miejscu nie mogę znaleźć potwierdzenia, że ​​problem został rozwiązany i jeśli tak zaktualizowane testy porównawcze. Jesteśmy teraz w wielu wersjach powyżej tego, o którym mowa powyżej i zastanawiam się, czy istnieją jakiekolwiek testy porównawcze, formalne lub w inny sposób dotyczące żądań Comet/sekundę.

Jeśli nie ma punktów odniesienia, dobrze byłoby wiedzieć ogólnie, czy kwestia oznaczona przez Amira wciąż jest nieaktualna. 500 komet/sekundę to progresja, do której można się dostać za pomocą niewielkiej witryny z czatem/grą.

Odpowiedz

2

node.js przeszedł długą drogę od 0.2.2. Wydaje się prawdopodobne, że były również problemy z implementacją architektury omawianej w połączonym poście, ponieważ komentarze sugerują, że nie rozważyły ​​użycia procesów z wieloma węzłami z modułem równoważenia obciążenia.

Jest to oczywiście konieczność dużej mocy - rzeczywiście, ostatni akapit node.jsofficial about section brzmi:

Ale co wielu procesorów współbieżności? Czy wątki nie są konieczne do skalowania programów na komputery wielordzeniowe? Możesz rozpocząć nowe procesy przez child_process.fork() te inne procesy zostaną zaplanowane równolegle. Do równoważenia obciążenia połączenia przychodzące w wielu procesach używają modułu klastra.

Teraz, biorąc pod uwagę, że pojedynczy węzeł 0.2.2 proces stosowany% 10 z zasobów Netty (jak wspomniano w PO połączonego słupka), wówczas mogliby uruchomić 10 procesów węzła na tym samym sprzęcie, który nasuwa się pytanie: Jeśli Netty jest 10 razy szybszy od węzła, ale używa 10x zasobów, to czy ich wydajność nie była taka sama? Tymczasem wydajność węzła została drastycznie poprawiona w wersjach >=0.6.0, , zwłaszcza na komputerach z systemem Windows, który jest teraz obsługiwany natywnie. Zobacz kryteriów Okienka z 0.6.0 release notes:

Benchmark http została wykonana ze 600 klientami w sieci 10GE służył od trzech maszyn generacji obciążenia.

      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 

Tymczasem, choć nikt nie wydaje się chce rozmawiać o co dokładnie robią, wydaje się jedne z najwyższych technologii ruch graczy zwracają się do node.js ekstremalnie systemów o dużej pojemności. Google, Yahoo, Mozilla, LinkedIn i uruchamiania i.TV są wszystkie profilowane w artykule Node at scale opublikowanym wczoraj na stronie venturebeat.com.

Chociaż nie mogłem znaleźć dokładne odniesienia dla komety/sekundę, wydaje się jasne, że przy prawidłowej architektury systemu jest o wiele, wielewyższy niż 500.