2015-04-20 4 views
9

I EC2 die docs lesen: instance types, pricing, FAQ, burstable performance und auch this über CPU-Credits. Ich fragte sogar die folgende AWS-Unterstützung und die Antwort war nicht klar.mehr t2.micro besser als ein einzelner t2.small oder t2.medium

Die Sache ist, nach den Dokumenten (obwohl nicht zu klar) und AWS-Unterstützung, alle 3 Instanztypen haben die gleiche Leistung beim Bersten, es ist 100% Nutzung einer bestimmten Art von CPU-Kern.

Das ist also mein Denkprozess. Angenommen t2.micro's RAM reicht aus und die Software kann horizontal skalieren. Wenn 2 t2.micro die gleichen Kosten wie 1 t2.mall hat, wird unter der Annahme, dass die Last gleichmäßig zwischen ihnen verteilt wird (wahrscheinlich über AWS LB), dieselbe CPU-Gesamtmenge verwendet und die gleiche Menge an CPU-Credits verbraucht. Wenn sie auf die Basisleistung zurückfallen würden, wäre es dasselbe.

ABER, während sie platzen, kann 2 t2.micro x2 die Leistung eines t2.small erreichen (wieder, für die gleichen Kosten). Das gleiche Konzept gilt für t2.medium. Die Verwendung kleinerer Instanzen ermöglicht eine automatische (oder manuelle) Skalierung, die es ermöglicht, Geld zu sparen.

Also meine Frage ist, gegeben RAM und horizontale Skala ist kein Problem, warum sollte man anders als t2.micro verwenden.

EDIT: Nach einigen Antworten, hier sind ein paar Notizen über sie:

  • ich auf AWS Unterstützung gebeten und angeblich jede vCPU der t2.medium kann bis zu 50% der „vollen Kern“ erreichen. Dies bedeutet, dass das selbe, was ich gesagt habe, auf t2.medium zutrifft (wenn das, was sie sagten, korrekt war).
  • T2.micro-Instanzen können bei der Produktion verwendet werden. Je nach Technologie und Implementierung kann eine einzelne Instanz mehr als 400 RPS verarbeiten. Ich tue, und tut auch this guy.
  • Sie erfordern ein genaueres Hinsehen, um sicherzustellen, dass die Credits nicht niedrig werden, aber ich akzeptiere das nicht als Grund, sie nicht zu verwenden.
+0

Ich stimme Ihrer Analyse zu, aber nur, wenn Ihre Arbeitsbelastung wie erwähnt horizontal skaliert werden kann. Jede erforderliche vertikale Skalierung wird von einer größeren t2-Instanz profitieren. Der große Unterschied zwischen sagen t2.micro und t2.small ist die Grundleistung, die Sie mit der CPU erreichen können. Wenn Sie CPU-intensive Aufgaben haben, dann wäre es ein Grund, eine t2.small-Instanz zu verwenden, um lange Zeiträume von 20% CPU-Auslastung aushalten zu können. – OpenUserX03

Antwort

0

Das jeder Instanz zugewiesene Guthaben ist unterschiedlich. Während also zwei Mikros die doppelte Leistung von kleinen während des Bursts liefern könnten, wird es nur halb so lange möglich sein.

Ich bevorzuge in der Regel mindestens zwei Instanzen für die Verfügbarkeit. Bei dem burstbaren Modell kommt jedoch auch die Arbeitsbelastung in Betracht. Schaust du auf Dauerlast? Oder erwarten Sie zufällige Spitzen während des Tages?

+0

Der Verkehr ist nicht stachelig, aber variiert während des Tages. Danke für das Kommentieren, aber ich suche keinen Rat, ob ich mich auf T2 verlassen soll oder nicht, ich habe die Optionen vor einiger Zeit ausgewertet. Beachten Sie, dass 2 Instanzen (für die gleiche Auslastung) die Hälfte der CPU-Auslastung als eine einzige haben, so dass sie nicht halb so lange aufrechterhalten werden, da jede Instanz weniger Arbeit zu erledigen hat. –

1

Es gibt viele bewegliche Ziele hier. Was machen deine Instanzen? Sie sagten, der Verkehr variiert über den Tag, aber nicht stachelig. Wenn Sie also die Last mit einer kleinen Menge von t2.micro-Instanzen "eng folgen" wollen, können Sie nicht zu viel Bursting verwenden, da Sie bei jedem Upscaling einen geringen CPU-Credit haben. Wenn also die meisten Ihrer Instanzen nur unter Last laufen, sammeln sie niemals CPU-Credits. Außerdem verlieren Sie mit jeder Startzeit und den ungenutzten, aber begonnenen Betriebsstunden Zeit und Geld. Eine zu häufige Up/Down-Skalierung ist daher nicht die kostengünstigste. Last but not least, das Betriebssystem, andere Software hat mehr oder weniger einen festen Overhead, läuft es 2 mal anstelle von einem, kann mehr Ressourcen von Ihrer Anwendung in einem System, wo Sie CPU-Credits nur unter 20% erhalten Belastung.

Wenn Sie extreme Kosteneffizienz wünschen, verwenden Sie Spot-Instanzen.

+0

Hallo, vielen Dank für Ihren Kommentar. Die Skalierung war wirklich eine Randnotiz. Angenommen, ich lasse sie den ganzen Tag laufen. Der einzige Vorteil für größere Maschinen ist die OS-Verarbeitung, aber das ist im Vergleich sehr gering. –

+0

Im Allgemeinen sollten Sie keine T-Typ-Instanz für die Produktion verwenden. Wenn es Ihnen nichts ausmacht, einige Ausfallzeiten zu haben (was Sie mit t haben können, wenn Sie eine Last haben und Sie keine Credits haben), dann können Sie auch eine Flotte von Spot-Instanzen verwenden. Aber dann können Sie eine m3.small für einen guten Preis bekommen. (Und wenn die Gebote zu hoch werden, haben Sie eine Autoscaling-Gruppe mit t instance bereit.) –

+1

Beachten Sie, dass ich die Frage, die sich auf T's on production bezieht, noch ein paar Infos hinzugefügt habe. Es gibt Möglichkeiten, Credits zu überwachen und darauf zu reagieren, bevor es passiert. Der Punkt hier ist die extreme Kosteneffizienz der T2-Instanzen, die all dies zu einer brauchbaren Diskussion macht. –

12

Ihre Analyse scheint korrekt zu sein.

Während der Prozessortyp nicht eindeutig dokumentiert ist, sehe ich typischerweise meine t2.micro Instanzen mit einem Intel Xeon E5-2670 v2 (Ivy Bridge) Kern ausgestattet, und meine t2.medium Instanzen haben zwei davon.

Die Kleinst- und Kleinstwerte sollten in der Tat die gleiche Burst-Leistung haben, solange sie über eine angemessene Anzahl von CPU-Krediten verfügen. Ich sage "eine vernünftige Zahl", weil die Leistung nachweislich über ein 15-Minuten-Fenster abgebaut wird und nicht wie bei t1.micro stark abfällt.

Alles über die drei Klassen (außer dem Kern, in Mikro vs klein) multipliziert sich um zwei, wenn Sie aufsteigen: Grundlinie, Credits verdient pro Stunde und Kredit-Cap. Wahrscheinlich entspricht das Medium bei der kurzfristigen Burst-Performance (mit seinen zwei Kernen) sehr genau zwei kleinen, aber das ist auch genau die Fähigkeit, die Sie mit zwei Mikros haben, wie Sie betonen. Wenn der Speicher keine Rolle spielt und der Datenverkehr entsprechend stoßartig ist, ist Ihre Analyse sinnvoll.

Während die Klasse t1 für eine Produktionsumgebung fast völlig ungeeignet war, gilt das Gleiche nicht für die Klasse t2. Sie sind Welten voneinander entfernt.

Wenn Ihr Code eng und effizient mit Speicher ist und Ihre Arbeitslast für das cpu-basierte Modell angemessen ist, dann stimme ich mit Ihrer Analyse über den ausgezeichneten Wert ein t2.micro darstellt.

Natürlich ist das ein riesiges "wenn". Ich habe jedoch Systeme in meinen Netzwerken, die perfekt zu diesem Modell passen - ihr Speicher ist fast vollständig beim Start zugewiesen und ihre Last ist relativ gering, aber im Laufe eines Tages sehr unterschiedlich. Solange Sie nicht an die Erschöpfung Ihrer Guthaben heranreichen, sehe ich nichts falsch mit diesem Ansatz.

+1

Danke, ohne die anderen Kommentare zu beleidigen, aber dies ist die erste Antwort, die sich auf die Frage konzentriert und nicht auf etwas anderes. Ich bearbeitete zusätzliche Inhalte basierend auf dieser Antwort. –

+0

Nach den Benchmarks hier https://www.vpsbenchmarks.com/compare/ec2_vs_gce Durchschnittliche Reaktionszeit von t2-kleine 45,8 ms, t2-micro 161,0 ms. Woher kommt der Performance-Hit? – Adamz

Verwandte Themen