Ci sono dei limiti imposti dalla memoria disponibile, dalla larghezza di banda, dalla CPU e, naturalmente, dalla connettività di rete. Ma quelli possono spesso essere ridimensionati verticalmente. Ci sono altri fattori limitanti su Linux? Possono essere superati senza modifiche al kernel? Sospetto che, se non altro, il fattore limitante diventerebbe la gigabit ethernet. Ma per protocolli efficienti potrebbe richiedere 50K connessioni simultanee per sommergerla. Qualcos'altro si romperebbe prima che potessi arrivare così in alto?Quante connessioni aperte udp o tcp/ip possono avere una macchina Linux?
Sto pensando che voglio un software udp e/o tcp/ip load balancer. Sfortunatamente non sembra esistere nulla di simile nella comunità open source, ad eccezione del protocollo http. Ma non è al di là delle mie capacità scrivere uno con epoll. Mi aspetto che ciò comporti un gran numero di modifiche per farlo scalare, ma questo è un lavoro che può essere fatto in modo incrementale, e sarei un programmatore migliore per questo.
si alza un buon punto su jitter e latenza e l'effetto sul traffico anelastica – Eloff
sarebbe il persona che ha votato il mio post cura per spiegare? il down-voting drive-by senza commenti è semplicemente scortese. – jldupont
Per TCP, l'altra preoccupazione è la quantità di dati in entrata. I dati in arrivo occupano i buffer del kernel fino a quando non vengono elaborati da un processo utente. Se l'applicazione non elabora la memoria "abbastanza veloce", il kernel può rimanere senza panico e buffer. Questo può essere migliorato impostando una piccola dimensione del buffer Rx su ciascun socket. –