
Ich versuche herauszufinden, welche Art von Server-Setup ich unterstützen muss:
- 1.000 HTTP-Postanfragen pro Sekunde
- Jeder Beitrag enthält eine XML-Datei zwischen 5 und 50 KB (durchschnittlich 25 Kilobyte).
Selbst wenn ich mit meiner dedizierten Box eine 100-MBit/s-Verbindung bekomme (normalerweise bieten sie 10 MBit/s, aber man kann ein Upgrade durchführen), sind das nach meinen Berechnungen etwa 12.000 KB/s, was ungefähr 480 25-KB-Dateien pro Sekunde bedeutet.
Dies bedeutet, dass ich etwa drei Server benötige, jeder mit einer 100-MBit/s-Verbindung.
Könnte ein einzelner Server, auf dem HAProxy läuft, die Anfragen an andere Server umleiten oder bedeutet das, dass ich mir etwas anderes besorgen muss, das mehr als 100 MBit/s verarbeiten kann, um die Dinge per Proxy an die anderen Server weiterzuleiten?
Wenn meine Berechnungen nicht stimmen, bin ich für Ihre Korrekturen dankbar.
Antwort1
Zunächst gehe ich davon aus, dass Sie die richtige Größe für Ihre Server gewählt haben, da Sie nur nach der Bandbreite fragen.
Zweitens sollten Sie Ihren Entwurf auf den schlimmsten Fall vorbereiten, also darauf, dass bei allen 1.000 Anfragen eine 50 KB große Datei gepostet wird.
Zweitens, normalisieren wir alles in Bits pro Sekunde statt in Bytes pro Sekunde, da dies die Einheit ist, in der die Bandbreite gemessen wird.
Das ergibt (50 * 8) * 1000 = 400.000. Umgerechnet in Mbit/s wären das 400. Jetzt müssen Sie noch den Overhead von ca. 20 % hinzufügen, den TCP und Ethernet verursachen, und im schlimmsten Fall kommen Sie auf 480 Mbit/s.
Ihre HAProxy-Instanz müsste Gigabit-fähig sein, um den gesamten Datenverkehr zu verarbeiten. Und Sie bräuchten mindestens 4 Server dahinter, die mit 100 MBit/s laufen.
Nun der Vorbehalt: Diese Geschwindigkeiten sind Ihre Verbindungsgeschwindigkeiten zum Internet. Sie müssen Ihren Anbieter fragen, wie hoch die Geschwindigkeiten zwischen den Servern sind. Wenn es sich um einen guten Anbieter handelt, bietet er hoffentlich Gigabit-Verbindungen zwischen den Servern, und dann müssen Sie sich nur noch um Ihre Internetnutzung kümmern.