Domanda

Durante la scrittura di un server personalizzato, quali sono le migliori pratiche o tecniche per determinare il numero massimo di utenti che possono connettersi al server in qualsiasi momento?

Si assume che la capacità dell'hardware del computer, capacità di rete e server di protocollo sono tutti fattori importanti.

Inoltre, secondo voi è una buona pratica per limitare il numero di connessioni di rete per un certo numero massimo di utenti?O il server non limitare il numero di connessioni di rete e lasciare che le prestazioni degradano fino a quando il tempo di risposta è molto alta?

È stato utile?

Soluzione

Dan Kegel mettere insieme una sintesi di tecniche per la gestione di grandi quantità di connessioni di rete da un singolo server, qui: http://www.kegel.com/c10k.html

Altri suggerimenti

In generale moderni server in grado di gestire un numero molto elevato di connessioni simultanee.Ho lavorato su sistemi con più di 8.000 contemporaneamente aprire un socket TCP/IP.

Avrete bisogno di un alta qualità di assistenza interfaccia per gestire questo tipo di carico, check-out libevent o libev.

Che è una buona domanda ed è sicuramente situazionale.Qual è il tuo computer?Avete un 4 socket macchina riempito con Quad Core Xeon, 128 GB di RAM e Connettività Fibre Channel (come la coppia di Dell R900s abbiamo appena comprato)?O sono in esecuzione su un p3 550 con 256 MB di RAM e modem 56K?La quantità di carico che fa ogni collegamento posto sul vostro server?Che tipo di risposta è accettabile?

Queste sono le domande a cui bisogna rispondere.Credo che il miglior modo per trovare la risposta è semplice: attraverso il test di carico.Creare una unità di prova del previsto (e forse di qualche imprevisto) percorsi che il codice esegue contro il server.Trovare un test di carico quadro che vi permetterà di simulare 10, 100, 1000, 10000 utenti di esecuzione di tali compiti allo stesso tempo.

Che vi dirà quante connessioni computer in grado di supportare.

La cosa grande circa il carico/unità scenario di test è che si può mettere in tempo di risposta aspettative nel test di unità e aumentare il carico fino a cadere al di fuori di il tuo tempo di risposta.Se si dispone di un requisito di sostegno di un numero X di Utenti con Y seconda risposta, si sarà in grado di dimostrare con il test di carico.

Uno dei più grandi battute d'arresto in alto di concorrenza connessioni è in realtà il router coinvolti.Home user oriented router di solito hanno un piccolo tabella NAT, impedendo il router dal fatto che la manutenzione del server, le connessioni.

Assicurati di ricerca il tuo router/ infrastrutture di rete, l'installazione di un bene.

Penso che non si dovrebbe limitare il numero di connessioni server consente solo di individuare e gestire correttamente tutte le eccezioni che possono verificarsi in fase di accettazione e chiusura delle connessioni e dovresti essere a posto.Si dovrebbe lasciare che tipo di programmazione a basso livello del sistema operativo sottostante strati - in questo modo è possibile trasferire il tuo server più facile etc.

Questo in realtà dipende dal vostro sistema operativo.

Diverse versioni di Unix a promuovere la "illimitato" numero di handle di file / prese gli altri hanno valori elevati come 32768.

Un utente tipico limite è 8192, ma di solito può essere impostata ad un livello superiore.

Penso che windows è più limitato ma la versione del server può avere limiti più alti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top