2015-04-21 22 views
5

Ospiterò un'applicazione webrtc. Tutto quello che il server deve fare è passare i messaggi come il numero di stanza, i candidati di ghiaccio, le disconnessioni, ecc., Solo tutti quei messaggi per la segnalazione. Sto usando socket.io e node.js.Quanta RAM di hosting richiede un'applicazione webRTC?

Il server praticamente passa il testo in giro. Non ci sono registrazioni, nessun database, è tutto in memoria. Tiene traccia di un elenco di utenti che sono online (solo quanti sono in linea) e l'elenco delle camere che vengono prese. Quindi alcuni elenchi di numeri e passa il testo tra gli utenti in modo che possano connettersi tramite webrtc.

Ora, ovviamente quando (se) ricevo un'enorme quantità di traffico in arrivo, le liste potrebbero diventare un po 'grandi, come forse 10k-20k di 5 cifre in ciascuna lista (ci sono solo un paio di grandi liste).

E tutto ciò che passa, come la disconnessione e la connessione. Ho bisogno di un server in grado di fare queste cose velocemente, perferenzialmente un server gratuito. Voglio dire, è solo testo, quindi non dovrebbe essere un grosso problema, giusto? Ma la mia app è strutturata attorno al collegamento di una persona alla prossima persona che si connette. Quindi, se un sacco di persone si collegano intorno allo stesso secondo, allora ho bisogno di un server di hosting veloce in grado di gestirlo al millesimo di secondo ... Sarà anche questo un problema?

Che cosa dovrei cercare in un server, se sto semplicemente utilizzando la memoria per gli elenchi di numeri (senza database) e passando il materiale di testo.

+0

Si potrebbe preferire una soluzione cloud in modo da poter effettuare l'upscaling se necessario. In generale non sarei preoccupato. Questo non mi sembra davvero un problema. – Robert

risposta

0

Prima di tutto, questo non ha nulla a che fare con lo stesso webrtc. Quello che sostanzialmente vuoi è un chat-server, un server che invia dati da uno all'altro.
In secondo luogo, il tipo di server è irrilevante per la quantità di RAM necessaria per eseguirlo. Ciò che conta è quanto clients avrai contemporaneamente. (in una certa misura, game servers ovviamente consumerà più RAM anche senza clients).
In terzo luogo, più RAM NON significa una gestione più rapida. Cioè, se non usi pienamente lo RAM disponibile, aggiungere altro non ti farà bene. Ovviamente, quando si superano le RAM disponibili, le cose iniziano a rallentare molto. Read more about it here

Ora, con quelli fuori mano, vediamo di cosa hai bisogno. Puoi fare una stima molto approssimativa collegando alcuni clients a server e vedere quanto usa RAM. Verifica se la quantità di RAM aumenta se questi clients iniziano a chiamarsi l'un l'altro e di quanto aumenta. Ora disponi di un importo minimo e massimo di RAM per x clients. Vorrei fare questo test con circa 10 clients.

Ora che è possibile effettuare una stima, calcolare quanto è il minimo e il massimo di RAM per la base utente prevista. Diventerà sempre più una cosa di preferenza da qui in avanti, ma vorrei almeno raddoppiare tale importo e quindi arrotondare alla quantità più vicina di RAM che "ha senso" (14,7 GB diventa 16 GB, 28,32 GB diventa 32 GB ecc. .)

Aggiungerò, dalla mia esperienza con webrtc con circa 1000-1500 utenti contemporanei che 8 GB è abbastanza facilmente. Ma è davvero all'altezza della quantità di utenti che ti aspetti.

Su un nodo laterale, consiglio vivamente a nodejs per un server.È super facile da usare, qualsiasi programmatore che conosca lo javascript (quindi praticamente qualsiasi programmatore) può creare uno chat-server in nodejs in un giorno o due. Date un'occhiata a this open-source webrtc server in nodejs

+0

Ho scritto un server su node.js, ma sono solo curioso di sapere come distribuirlo sul web. – Hellothere