Tengo un programa muy simple escrito en 5 min que abre un socket de corte y recorre la solicitud e imprime en la pantalla los bytes que se le envían.¿Existe un límite en el número de conexiones tcp/ip entre máquinas en Linux?
Luego traté de comparar cuántas conexiones puedo usar para tratar de averiguar cuántos usuarios concurrentes puedo apoyar con este programa.
En otra máquina (donde la red entre ellos no está saturada) creé un programa simple que entra en un bucle y se conecta a la máquina del servidor y envía los bytes "hello world".
Cuando el ciclo es 1000-3000, el cliente finaliza con todas las solicitudes enviadas. Cuando el ciclo va más allá de 5000, comienza a tener tiempos de espera después de finalizar el primer número X de solicitudes. ¿Por qué es esto? Me he asegurado de cerrar mi socket en el bucle.
¿Solo puede crear tantas conexiones dentro de un cierto período de tiempo?
¿Este límite solo es aplicable entre las mismas máquinas y no tengo que preocuparme por esto en la producción, donde más de 5000 solicitudes provienen de diferentes máquinas?
puede supervisar sus tomas usando el comando ss -s. Y siga los pasos para aumentar el límite de socket si es necesario – Antarus
puede reutilizar sockets TIMED_WAIT como: 's = socket.socket (socket.AF_INET, socket.SOCK_STREAM, 0)' 's.setsockopt (socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) ' – knutole