Sto cercando di ottimizzare più connessioni per volta su un server socket TCP.Nuovo thread per connessione client nel server socket?
È considerata buona pratica, o addirittura razionale, avviare un nuovo thread nel server di ascolto ogni volta che ricevo una richiesta di connessione?
A che ora devo iniziare a preoccuparmi di un server basato su questa infrastruttura? Qual è il numero massimo di thread in background che posso lavorare, fino a quando non ha più senso?
Platform è C#, framework è Mono, sistema operativo di riferimento è CentOS, la RAM è 2.4G, il server è sulle nuvole, e mi aspetto circa 200 richieste di connessione al secondo.
@codeka E per quanto riguarda il processo per connessione. quando il client si connette al server. il server crea processi diversi e reindirizza il client ad esso? –
Bene, è tecnicamente lo stesso con un processo per connessione. Ecco perché Apache (ad esempio) ora usa un pool di "processi di lavoro" per gestire le richieste simultanee, piuttosto che un processo per connessione. –
+1 per menzionare i pool di thread ... potrebbe essere un buon approccio per l'implementazione di OP –