Der Transfer wurde schneller, nachdem die Adresse reserviert war, und die Schlussfolgerung schrieb sich von selbst. Nur dass dieselbe Änderung auch den Tunnel von UDP auf TCP umstellte, den Test auf einen anderen Abend verschob und möglicherweise auf einer VM in einer anderen Zone landete. Eine externe Adresse zu reservieren behebt ein Lebenszyklusproblem: Sie hält den Endpunkt über Neustarts hinweg gleich. Sie hat keinen Mechanismus, der Pakete beschleunigen würde, also gehört der Geschwindigkeitsunterschied in diesem Experiment zu den anderen Variablen, und die Entscheidung vor Ihnen ist, welche als Nächstes zu testen ist.

Was eine reservierte Adresse tatsächlich bringt

Compute Engine unterscheidet kurzlebige Adressen, die mit der Instanz zugewiesen und freigegeben werden, von statischen Adressen, die Sie reservieren und behalten. Dieser Unterschied betrifft Aufbewahrung und Abrechnung, nicht den Pfad, den ein Paket nimmt. Ein stabiler Endpunkt ist wirklich nützlich für DNS-Einträge, Fernzugriffsprofile, Partner-Allowlists und Firewall-Regeln, die sich beim Neustart einer VM nicht ändern sollten.

Das sind gute Gründe, eine zu reservieren. Keiner davon ist ein Durchsatzgrund.

Halten Sie Tier, Adresse und Transport als drei Variablen

Google Cloud verkauft außerdem die Netzwerk-Service-Tiers Premium und Standard, und beide nehmen unterschiedliche Wege ins Internet mit unterschiedlicher Funktionsverfügbarkeit. Statische Adressierung ist zu beiden orthogonal, also behandeln Sie statisch und Premium als unabhängige Fakten über eine VM und nicht als Synonyme. Halten Sie das tatsächliche Tier, die Region und jede Interconnection oder Attachment fest, denn diese beschreiben den Pfad so, wie das Adressetikett es nie tun wird.

Drei Variablen, drei getrennte Experimente, sonst ist das Ergebnis eine Geschichte statt einer Messung.

Entwerfen Sie einen Test, der eine Frage beantwortet

Halten Sie VM, Adresse, Client-Standort, Ziel und Arbeitslast fest, während Sie genehmigte UDP- und TCP-Profile vergleichen. Nötig sind sowohl ein Server-Listener pro Transport als auch passende Firewall-Regeln; ein Client-Schlüsselwort zu ändern und den Listener unverändert zu lassen, testet nur Ihre Geduld. Verwenden Sie einen wiederholbaren Transfer und protokollieren Sie Richtung, Dauer, einzelne gegenüber parallelen Streams und die Einheiten, denn MB/s und Mb/s unterscheiden sich um den Faktor acht.

Beobachten Sie auch die CPU der VM, denn eine kleine Instanz sättigt bei Verschlüsselungs- oder Softirq-Arbeit lange bevor das Netzwerk es tut, und diese Obergrenze wird genau wie ein Anbieterlimit aussehen.

Retransmit- und Verlustzähler von VM und Client trennen Pfadprobleme von Transportproblemen, und ein Fortschrittsbalken kann das nicht. Eine brauchbare Sequenz mit iperf3 dauert etwa zehn Minuten pro Transport. Starten Sie den Server auf der Gegenseite, lassen Sie den Client dreißig Sekunden in jede Richtung laufen und wiederholen Sie jede Richtung dreimal. Verwerfen Sie den ersten Lauf jeder Serie und vergleichen Sie dann Sender- und Empfängerate zusammen mit der Retransmit-Zahl, die die TCP-Läufe ausgeben.

Warum sich UDP und TCP mechanisch unterscheiden

OpenVPN über UDP trägt Datagramme und überlässt dem Transport der Anwendung den Umgang mit Verlusten. Über TCP liegt der zuverlässige Strom des Tunnels unter einem ohnehin zuverlässigen Anwendungsstrom, sodass ein verlorenes Segment alles dahinter blockiert, während die äußere Verbindung nach ihrem eigenen Zeitplan erneut sendet. Dieses Head-of-Line-Verhalten ist eine Eigenschaft des Tunnelns von TCP in TCP, keine Anbieterrichtlinie. Auch der Umgang mit MTU und MSS unterscheidet sich zwischen den beiden Modi, was das Fragmentierungsverhalten auf demselben Pfad ändert.

Ein schnellerer TCP-Versuch beweist daher, dass TCP an jenem Tag auf jenem Pfad schneller war, und nichts Allgemeineres.

Schreiben Sie das Ergebnis so, dass es eine Überprüfung übersteht

Eine belastbare Schlussfolgerung hat eine Form: Dieses Profil hielt auf dieser Maschinengröße, auf diesem Netzwerk-Tier diese gemessene Last in dieser Richtung unter diesen Bedingungen. Alles Breitere braucht mehr Läufe, als ein Abend liefern kann. Bleibt der langsamere Fall unerklärt, halten Sie ihn als Beobachtung mit ihren Paket- und Ressourcenbelegen fest, statt eine Drosselung zu erfinden, die kein Anbieterdokument beschreibt.

Adressstabilität und Transfergeschwindigkeit können für dieselbe Bereitstellung beide zählen, und die nützliche Entscheidung ist, welche von beiden Sie mit jeder Änderung kaufen.

Ähnliche Artikel