2012-01-25 7 views
5

Il motivo che mi sto chiedendo è che questo postCi sono dei benchmark che mostrano quante richieste di Comet al secondo possono essere gestite da Node.js 0.6.8?

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

Indica che Node.js 0.2.2 sembra avere una soglia di 500/s ed è superato 10 volte di Netty. Nei commenti, Ryan Dahl indica che probabilmente è stato a causa di un bug che è stato successivamente corretto. Tuttavia non riesco a trovare nel resto del post o altrove alcuna conferma che il problema è stato risolto e se benchmark così aggiornati. Ora ci sono molte versioni in anticipo rispetto a quella sopra citata e mi chiedo se ci siano dei parametri di riferimento, formali o di altro genere relativi alle richieste di Cometa/secondo.

Se non ci sono parametri di riferimento, sarebbe bene sapere in termini generali se il problema contrassegnato da Amir è ancora in sospeso. 500 comet/second è una soglia che può essere raggiunta da un sito di chat/giochi di dimensioni modeste.

risposta

2

node.js ha compiuto una lunga strada da 0.2.2. Sembra probabile che ci fossero anche problemi di implementazione con l'architettura discussa nel post collegato, poiché i commenti suggeriscono di non considerare l'utilizzo di più processi di nodo con un servizio di bilanciamento del carico.

Questa è chiaramente una necessità per applicazioni ad alte prestazioni - anzi, l'ultimo paragrafo della node.jsofficial about section legge:

Ma per quanto riguarda la concorrenza con più processori? I thread non sono necessari per ridimensionare i programmi su computer multi-core? È possibile avviare nuovi processi tramite child_process.fork() questi altri processi verranno pianificati in parallelo. Per il bilanciamento del carico, le connessioni in entrata tra più processi utilizzano il modulo cluster.

Ora, visto che un singolo processo nodo 0.2.2 utilizzato% 10 delle risorse di Netty (come menzionato nel post collegato OP), allora potrebbero hanno eseguito 10 processi nodo sullo stesso hardware, il che pone la domanda: se Netty è 10 volte più veloce del nodo, ma utilizza 10 volte le risorse, allora le loro prestazioni non erano le stesse? Nel frattempo, le prestazioni del nodo sono state drasticamente migliorate nelle versioni >=0.6.0, , in particolare sui computer con Windows, ora supportato in modo nativo. Vedere i parametri di riferimento di Windows dalla 0.6.0 release notes:

Il benchmark http è stato fatto con 600 clienti su una 10GE rete servita da tre macchine di generazione del carico.

      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 

Nel frattempo, anche se nessuno sembra voler parlare di ciò esattamente che stanno facendo, sembra che alcuni dei più alti giocatori traffico tecnologia si rivolgono a node.js per i sistemi ad altissima capacità. Google, Yahoo, Mozilla, e l'avvio i.TV sono tutti profilati nell'articolo Node at scale pubblicato ieri su venturebeat.com.

Mentre io non riuscivo a trovare punti di riferimento esatti per la cometa/secondo, sembra chiaro che con una corretta architettura del sistema è molto, molto più superiore a 500.

Problemi correlati