Ich habe ein sehr einfaches Programm in 5 min geschrieben, das einen Server-Socket öffnet und die Anforderung durchläuft und die gesendeten Bytes an den Bildschirm ausgibt.Gibt es eine Grenze für die Anzahl der TCP/IP-Verbindungen zwischen Maschinen unter Linux?
Ich versuchte dann zu Benchmark, wie viele Verbindungen ich es hämmern kann, um herauszufinden, wie viele gleichzeitige Benutzer ich mit diesem Programm unterstützen kann.
Auf einem anderen Rechner (wo das Netzwerk zwischen ihnen nicht gesättigt ist) habe ich ein einfaches Programm erstellt, das in eine Schleife geht und sich mit dem Server verbindet und die Bytes "Hallo Welt" sendet.
Wenn die Schleife 1000-3000 ist, endet der Client mit allen gesendeten Anforderungen. Wenn die Schleife über 5000 hinausgeht, beginnt sie nach Ablauf der ersten X-Anzahl von Anforderungen Zeitüberschreitungen zu haben. Warum ist das? Ich habe sichergestellt, dass ich meine Steckdose in der Schleife schließe.
Können Sie innerhalb eines bestimmten Zeitraums nur so viele Verbindungen erstellen?
Ist diese Grenze nur zwischen den gleichen Maschinen anwendbar und ich muss mich nicht darum kümmern, wenn 5000+ Anfragen von verschiedenen Maschinen kommen?
Sie Ihre Sockets ss es Befehl überwachen können. Und folgen Sie den Schritten, um Socket Limit zu erhöhen, falls erforderlich – Antarus
Sie können TIMED_WAIT Sockets wie: 's = socket.socket (socket.AF_INET, socket.SOCK_STREAM, 0)' 's wiederverwenden.setsockopt (socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) ' – knutole