Um genauer zu sein, verwende ich Python und einen Pool von HTTPConnection (httplib) und fragte mich, ob es eine Grenze für die Anzahl der gleichzeitigen HTTP-Verbindungen auf einem Windows-Server.Was ist die maximale gleichzeitige HTTP-Verbindungen auf einem Rechner erlaubt (Windows Server 2008) mit Python
Antwort
Gemäß der HTTP RFC sollte ein Client nicht mehr als 2 gleichzeitige Verbindungen zu einem Webserver oder Proxy verwalten. Die meisten Browser berücksichtigen dies jedoch nicht - Firefox 3.5 ermöglicht 6 pro Server und 8 pro Proxy.
Kurz gesagt, Sie sollten 1000 Verbindungen zu einem einzelnen Server nicht öffnen, außer Ihre Absicht ist, um die Leistung des Servers zu beeinträchtigen. Stresstests Ihres Servers wären ein gutes legitimes Beispiel.
[Bearbeiten]
Wenn dies ein Proxy Sie sprechen sind, dann ist das ein wenig anders aus. Mein Vorschlag ist, Verbindungspooling zu verwenden. Finde heraus, wie viele gleichzeitige Verbindungen dir die meisten Anfragen pro Sekunde geben und setze eine harte Grenze. Extra-Anfragen müssen nur in einer Warteschlange warten, bis der Pool freigibt. Seien Sie sich jedoch bewusst, dass ein einzelner Prozess standardmäßig auf 1024 Dateideskriptoren begrenzt ist.
Werfen Sie einen Blick durch apache's mod_proxy für Ideen, wie Sie damit umgehen.
Haben Sie einen Verweis auf die RFC, die Sie erwähnen? Ist es der HTTP-RFC? – ThomasH
Ich sollte wahrscheinlich hinzugefügt haben, anstatt nur autoritativ zu klingen :) – JimB
Ich möchte nicht meinen Server testen Stress. Das eigentliche Problem ist, dass mein Server load balanced ist und> 2000 Anfragen/Sekunden dauern kann. Aber jetzt müssen wir alle Anforderungen an einen "Proxy" -Server weitergeben, und dieser Proxy-Server erstellt eine neue Verbindung pro vom Client empfangener Anfrage. So, jetzt sind wir mit diesem Design fest und müssen es in Python tun. :( – Dan
AFAIK, die Anzahl der Internet-Sockets (notwendig, um TCP/IP-Verbindungen herzustellen) ist natürlich auf jeder Maschine begrenzt, aber es ist ziemlich hoch. 1000 simultane Verbindungen sollten für den Client-Rechner kein Problem sein, da jeder Socket nur wenig Speicher benötigt. Wenn Sie über diese Kanäle Daten empfangen, kann sich dies jedoch ändern. Ich habe von Test-Setups gehört, die mehrere tausend Verbindungen gleichzeitig von einem einzigen Client aus erstellt haben.
Die Geschichte ist in der Regel für den Server anders, wenn es für jede eingehende Verbindung schweres Heben (wie Abzweigen eines Worker-Prozesses etc.). 1000 eingehende Verbindungen werden beeinträchtigen ihre Leistung, und kommen aus dem gleichen Client können sie leicht für einen DoS-Angriff genommen werden. Ich hoffe, Sie sind verantwortlich für den Client und den Server ... oder ist es die gleiche Maschine?
- 1. mysqltuner.pl auf einem Windows 2008 Server r2
- 2. Was ist maximale gleichzeitige Websocket-Verbindungen für OpenShift?
- 3. Welches ist die maximale Anzahl gleichzeitiger Windows TCP/IP-Verbindungen?
- 4. PyMySQL auf einem Windows 7 Rechner installieren
- 5. Windows Server 2008 IIS 7.5 maximale Datei akzeptieren Grenzwert
- 6. Maximale gleichzeitige Socket.IO-Verbindungen
- 7. SQL Server 2008 R2 Varbinary Maximale Größe
- 8. Windows 2008 Server Backup
- 9. Probleme bei der Verbindung mit einem Server auf einem (manchmal virtualisierten) Windows-Rechner
- 10. HTTPListener stürzt auf Quad-Core-Rechner Win 2008 Server R2
- 11. PHP-Exec auf Windows Server 2008
- 12. Wie erhält man maximale Leistung von einem JavaEE-Server auf einem Multiprozessor-Rechner?
- 13. Theano Installation auf Windows-Rechner
- 14. Was ist die maximale Länge eines Windows-Befehlszeilenbefehls (cmd.exe)?
- 15. Was ist der maximale Dateipfad erlaubt in Android
- 16. Job auf Windows Server 2008 einplanen
- 17. Was ist mit `as` erlaubt?
- 18. Was ist die maximale Länge einer Zeichenfolge?
- 19. SQLXML mit Windows 2008 und SQL Server 2008
- 20. Was ist die maximale Dateigröße, die wir mit uploadify auf den Server hochladen können?
- 21. Eine Funktion, die nur N gleichzeitige Threads erlaubt
- 22. Buliding Windows Phone 7 Projekte auf Windows Server 2008
- 23. wie sql server 2008 auf vmware mit lokalen maschinen sql server 2008 client
- 24. Windows Server 2008 SMTP-Dienst mit für die Website
- 25. Was ist die maximale Länge einer Python-Zeichenfolge?
- 26. Was ist die maximale Anzahl von Ausführungen in einer While-Schleife in VB.net, die es erlaubt?
- 27. Was ist die maximale Abfragegröße für mysql?
- 28. Was ist die maximale Anzahl von Verbindungen?
- 29. Maximale gleichzeitige Verbindungen zu MySQL
- 30. Python http Server, mehrere gleichzeitige Anfragen
Angenommen, ich könnte 1000 gleichzeitige Verbindungen zum selben Server erstellen? ohne die Leistung zu beeinträchtigen. – Dan
Warum versuchst du nicht einfach 1000 Verbindungen zu erstellen und zu sehen, was passiert? –
Ich habe, bei den 1000 Verbindungen verlangsamt ~ 500ms/Anfragen. Bei 10 Verbindungen bin ich bei ~ 10 ms – Dan