Ich verwende auch NAT-Boxen in einem ähnlichen Setup in der Produktion, die sehr an Ihren Ergebnissen interessiert sind. Ich hatte vor der Produktion keine ähnlichen Ergebnisse, aber vielleicht ist es ein Problem, auf das ich vorher nicht geachtet habe.
Lass uns etwas Wissenschaft machen!
================================================== ==========================
Theorie: NAT-Boxen können schneller heruntergeladen und hochgeladen werden als ein Client, der NAT verwendet.
Experiment: Passen Sie das Experiment des Fragestellers an. t2.micros mit Amazon NAT 2014.09 2 Subnetze, wobei das NAT zu einem IGW und einem privaten Subnetz geht, das auf das NAT verweist. (Geteiltes Mietverhältnis. Allzweck-SSD)
Verfahren:
# install speedtest
$ sudo yum install python-pip -y --enablerepo=epel; sudo pip install speedtest-cli
# run against the same server
$ speedtest-cli --server 935 --simple
# run it many times
$ for ((n=0;n<10;n++)); do speedtest-cli --simple --server 935; done
Daten:
Nat: Client
Download 727.38 157.99
Upload 250.50 138.91
Fazit: OP lügt nicht.
================================================== ==========================
Theorie: Unterschiedliche Kernelversionen führen zu unterschiedlichen Ergebnissen.
Experiment: Richten Sie 3 Nat-Boxen mit jeweils magnetischer SSD, m3.medium (kein Platzen) und dediziertem Mietverhältnis ein. Führen Sie einen Geschwindigkeitstest durch.
Vorgehensweise: Siehe letztes Experiment. Richten Sie außerdem eine Routing-Tabelle für jede NAT-Box ein. Verwendete eine Blackhole-Routing-Tabelle, um zu beweisen, dass sich die Änderungen beim Austausch von Routing-Tabellen verbreitet haben.
- Verwenden eines NAT.
curl google.com
funktioniert.
- Wechseln Sie zu Blackhole.
- Warten Sie,
curl google.com
bis der Client fehlschlägt.
- Wechseln Sie zu neuem NAT.
curl google.com
funktioniert.
Hier sind meine 3 Nat-Boxen: 2014.09 3.14.20-20.44.amzn1.x86_64 2014.03 3.10.42-52.145.amzn1.x86_64 2013.09 3.4.62-53.42.amzn1.x86_64
Daten:
Alle 3 Boxen erzielen beim Laufen sehr ähnliche Ergebnisse speedtest-cli --server 935
09/14 03/14 09/13
355.51, 356.55, 364.04
222.59, 212.45, 252.69
Vom Kunden:
09/14 03/14 09/13
351.18, 364.85, 363.69
186.96, 257.58, 248.04
Schlussfolgerung: Gibt es eine Verschlechterung? Gibt es einen Unterschied zwischen den Kernel-Versionen? Nein.
================================================== ==========================
Theorie: Engagiertes versus gemeinsames Mietverhältnis macht einen Unterschied.
Experiment: 2 NAT-Boxen. Beide verwenden NAT 2014.09. Eine mit geteiltem Mietverhältnis, eine mit dediziertem Mietverhältnis.
Daten: Beide Boxen haben eine ähnliche Leistung:
Shared Nat Dedicated Nat
387.67 387.26
296.27 336.89
Sie haben auch ähnliche Standardabweichungen:
$ python3
>>> import statistics
>>> shared_download = [388.25, 333.66, 337.44, 334.72, 338.38, 335.52, 333.73, 333.28, 334.43, 335.60]
>>> statistics.stdev(shared_download)
16.858005318937742
>>> dedicated_download = [388.59, 338.68, 333.97, 337.42, 326.77, 346.87, 336.74, 345.52, 362.75, 336.77]
>>> statistics.stdev(dedicated_download)
17.96480002671891
Und wenn Sie die 2x2-Kombinationen ausführen:
Shared Client/Sh. NAT Sh. Client/Dedicated Nat Ded. Client/Sh. Nat Ded. Client/Ded. NAT
Upload 290.83 288.17 283.13 340.94
Download 260.01 250.75 248.05 236.06
Fazit: Wirklich unklar, ob Shared versus Dedicated keinen großen Unterschied zu machen scheint.
Meta Schlussfolgerungen:
Der Test, der wahrscheinlich wiederholt werden sollte, wäre der OP-Test mit m3.mediums. Ich konnte die t2.micro-Ergebnisse duplizieren, aber mein m3.medium scheint mit den m3.medium-Ergebnissen von OP in Konflikt zu stehen.
Ich würde gerne Ihre Daten auch in Kernelversionen sehen.
Der vielleicht interessanteste Teil ist, dass ich nicht in der Lage war, ein m3.medium NAT schnell zum Laufen zu bringen.