View a markdown version of this page

I/O Merkmale und Überwachung von Amazon EBS - Amazon EBS

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

I/O Merkmale und Überwachung von Amazon EBS

Bei einer bestimmten Volume-Konfiguration bestimmen bestimmte I/O Merkmale das Leistungsverhalten Ihrer EBS-Volumes.

  • SSD-backed Volumes, General Purpose SSD (gp2undgp3) und Provisioned IOPS SSD (io1undio2), bieten gleichbleibende Leistung, unabhängig davon, ob es sich um einen zufälligen oder sequentiellen I/O Vorgang handelt.

  • HDD-backed Volumes, Throughput Optimized HDD (st1) und Cold HDD (sc1), bieten nur dann optimale Leistung, wenn umfangreiche und I/O sequentielle Operationen durchgeführt werden.

Um zu verstehen, wie SSD- und HDD-Volumes in Ihrer Anwendung funktionieren, ist es wichtig, den Zusammenhang zwischen der Auslastung des Volumes, der Menge der verfügbaren IOPS, der Zeit bis zum Abschluss eines I/O Vorgangs und den Durchsatzgrenzen des Volumes zu kennen.

E/A\Sek

IOPS ist eine Maßeinheit, die input/output Operationen pro Sekunde darstellt. Die Operationen werden in KiB gemessen, und die zugrunde liegende Antriebstechnologie bestimmt die maximale Datenmenge, die ein Volumentyp als ein einzelnes Volumen zählt I/O. I/O Die Größe ist auf 256 KiB für SSD-Volumes und 1.024 KiB für HDD-Volumes begrenzt, da SSD-Volumes kleine oder zufällige Volumen I/O viel effizienter verarbeiten als HDD-Volumes.

Wenn kleine I/O Operationen physisch sequentiell sind, versucht Amazon EBS, sie bis zur maximalen I/O Größe zu einem einzigen I/O Vorgang zusammenzuführen. Ähnlich versucht Amazon EBS, I/O Operationen, die die maximale I/O Größe überschreiten, in kleinere I/O Operationen aufzuteilen. Die folgende Tabelle zeigt einige Beispiele.

Volume-Typ Maximale Größe I/O I/O Operationen aus Ihrer Anwendung Anzahl IOPS Hinweise
SSD 256 KiB 1 x 1024 I/O KiB-Betrieb 4 (1 024÷256=4) Amazon EBS teilt den I/O 1.024-KiB-Vorgang in vier kleinere 256-KiB-Operationen auf.
8 x sequentielle 32 KiB-Operationen I/O 1 (8x32=256) Amazon EBS führt die acht sequentiellen I/O 32-KiB-Operationen zu einem einzigen 256-KiB-Vorgang zusammen.
8 zufällige 32 I/O KiB-Operationen 8 Amazon EBS zählt zufällige I/O Operationen separat.
HDD 1 024 KiB 1 x 1024 I/O KiB-Betrieb 1 Die I/O Operation entspricht bereits der maximalen I/O Größe. Er wird nicht zusammengeführt oder geteilt.
8 x sequentielle 128-KiB-Operationen I/O 1 (8x128=1 024) Amazon EBS führt die acht sequentiellen I/O 128-KB-Operationen zu einem einzigen 1.024-KB-Vorgang zusammen. I/O
8 zufällige 32 I/O KiB-Operationen 8 Amazon EBS zählt zufällige I/O Operationen separat.

Wenn Sie also ein SSD-backed Volume erstellen, das 3.000 IOPS unterstützt (entweder durch die Bereitstellung eines io1 io2 ODER-Volumes mit 3.000 IOPS, durch die Dimensionierung eines gp2 Volumes auf 1.000 GiB oder durch die Verwendung eines gp3 Volumes) und es einer EBS-optimized Instance zuordnen, die ausreichend Bandbreite bereitstellen kann, können Sie bis zu 3.000 Daten pro Sekunde übertragen, wobei der Durchsatz I/Os von der Größe abhängt. I/O

Länge und Latenz der Volume-Warteschlange

Die Länge der Volume-Warteschlange entspricht der Anzahl der ausstehenden I/O Anfragen für ein Gerät. Die Latenz ist die tatsächliche Client-Laufzeit eines I/O Vorgangs, d. h. die Zeit, die zwischen dem Senden einer Nachricht an EBS und dem Empfang einer I/O Bestätigung von EBS, dass der Lese- oder Schreibvorgang abgeschlossen ist, vergeht. I/O Die Länge der Warteschlange muss korrekt auf I/O Größe und Latenz abgestimmt werden, um Engpässe entweder im Gastbetriebssystem oder in der Netzwerkverbindung zu EBS zu vermeiden.

Die optimale Warteschlangenlänge für jeden Workload variiert und hängt davon ab, wie empfindlich Ihre jeweilige Anwendung auf IOPS und Latenz reagiert. Wenn Ihr Workload nicht genügend I/O Anfragen liefert, um die für Ihr EBS-Volume verfügbare Leistung voll auszuschöpfen, dann liefert Ihr Volume möglicherweise nicht die IOPS oder den Durchsatz, den Sie bereitgestellt haben.

Transaction-intensive Anwendungen reagieren empfindlich auf erhöhte I/O Latenz und eignen sich daher gut für Volumes. SSD-backed Um eine hohe IOPS-Rate bei geringer Latenz sicherzustellen, können Sie eine kurze Warteschlange verwenden und dafür sorgen, dass auf dem Volume eine große Anzahl von IOPS verfügbar ist. Wenn einem Volume ständig mehr IOPS zugewiesen wird, als ihm zur Verfügung stehen, kann dies zu einer erhöhten I/O Latenz führen. Für maximale Konsistenz muss ein Volume eine durchschnittliche Warteschlangentiefe (auf die nächste ganze Zahl gerundet) von eins pro 1.000 bereitgestellte IOPS pro Minute beibehalten. Bei einem Volume, das mit 3.000 IOPS bereitgestellt wird, muss die durchschnittliche Warteschlangentiefe beispielsweise 3 betragen.

Throughput-intensive Anwendungen reagieren weniger empfindlich auf erhöhte I/O Latenz und eignen sich daher gut für Volumes. HDD-backed Sie können einen hohen Durchsatz für HDD-backed Volumes aufrechterhalten, indem Sie bei großen, sequentiellen I/O Vorgängen eine hohe Warteschlangenlänge beibehalten.

I/O Grenzwerte für Größe und Volumen des Durchsatzes

Bei SSD-backed Volumes kann es bei sehr großen Volumen zu I/O einer geringeren Anzahl von IOPS kommen, als Sie bereitgestellt haben, weil Sie die Durchsatzgrenze des Volumes erreichen. Beispielsweise hat ein gp2 Volume unter 1.000 GiB mit verfügbaren Burst-Credits ein IOPS-Limit von 3.000 und ein Volumendurchsatzlimit von 250 MiB/s. Wenn Sie eine I/O Größe von 256 KiB verwenden, erreicht Ihr Volume seine Durchsatzgrenze bei 1000 IOPS (1000 x 256 KiB = 250 MiB). Bei kleineren I/O Größen (z. B. 16 KiB) kann dasselbe Volume 3.000 IOPS aufnehmen, da der Durchsatz deutlich unter 250 MiB/s liegt. (Bei diesen Beispielen I/O wird davon ausgegangen, dass Ihr Volume die Durchsatzgrenzen der Instance nicht erreicht.) Weitere Informationen zu den Durchsatzlimits für jeden EBS-Volume-Typ finden Sie unter Amazon EBS-Volume-Typen.

Bei kleineren I/O Vorgängen wird möglicherweise ein höherer als der bereitgestellte IOPS-Wert angezeigt, der von Ihrer Instance aus gemessen wird. Dies passiert, wenn das Instance-Betriebssystem kleine I/O Operationen zu einem größeren Vorgang zusammenführt, bevor es sie an Amazon EBS weitergibt.

Wenn Ihr Workload sequenzielle I/Os On HDD-backed st1 - und sc1 Volumes verwendet, kann es sein, dass die Anzahl der IOPS, gemessen innerhalb Ihrer Instance, höher als erwartet ist. Das passiert, wenn das Instance-Betriebssystem sequentiell zusammenführt I/Os und diese dann in 1.024 Einheiten zählt. KiB-sized Wenn Ihr Workload Small oder Random verwendet I/Os, kann es sein, dass Ihr Durchsatz geringer ist als erwartet. Das liegt daran, dass wir jeden zufälligen, nicht sequentiellen Teil der I/O gesamten IOPS-Anzahl zählen, was dazu führen kann, dass Sie die IOPS-Grenze des Volumes früher als erwartet erreichen.

Unabhängig von Ihrem EBS-Volume-Typ sollten Sie sicherstellen, dass die Bandbreite Ihrer EC2-Instance kein begrenzender Faktor ist, wenn Sie in Ihrer Konfiguration nicht den erwarteten IOPS-Wert oder Durchsatz erreichen. Für eine optimale Leistung sollten Sie immer eine EBS-optimized Instance der aktuellen Generation (oder eine mit 10 Gb/s Netzwerkkonnektivität) verwenden. Eine weitere mögliche Ursache dafür, dass die erwarteten IOPS nicht erreicht werden, ist, dass Sie die EBS-Volumes nicht ausreichend I/O ansteuern.

Überwachen Sie die Eigenschaften I/O mit CloudWatch

Sie können diese I/O Merkmale anhand der Volumenmetriken jedes CloudWatch Volumes überwachen.

Überwachen Sie, ob es blockiert ist I/O

VolumeStalledIOCheck überwacht den Status Ihrer EBS-Volumes, um festzustellen, wenn Ihre Volumes beeinträchtigt sind. Bei der Metrik handelt es sich um einen binären Wert, der je nachdem, ob das EBS-Volume Operationen abschließen I/O kann, den Status 0 1 (bestanden) oder (nicht bestanden) zurückgibt.

Wenn die VolumeStalledIOCheck Metrik fehlschlägt, können Sie entweder warten, AWS bis das Problem behoben ist, oder Sie können Maßnahmen ergreifen, z. B. das betroffene Volume austauschen oder die Instance, an die das Volume angehängt ist, beenden und neu starten. In den meisten Fällen, wenn diese Metrik fehlschlägt, diagnostiziert EBS Ihr Volume automatisch und stellt es innerhalb weniger Minuten wieder her. Sie können die I/O Aktion Pause verwenden, AWS Fault Injection Service um kontrollierte Experimente durchzuführen, um Ihre Architektur und Überwachung auf der Grundlage dieser Metrik zu testen und so Ihre Widerstandsfähigkeit gegenüber Speicherfehlern zu verbessern.

Überwachen Sie die I/O Latenz für ein Volume

Sie können die durchschnittliche Latenz für Lese- und Schreibvorgänge für ein Amazon EBS-Volume anhand der jeweiligen VolumeAvgWriteLatency Metriken VolumeAvgReadLatency und überwachen. Sie können die Aktion Latency Injection verwenden AWS Fault Injection Service , um kontrollierte Experimente durchzuführen, um Ihre Architektur und Überwachung auf der Grundlage dieser Metrik zu testen, um Ihre Widerstandsfähigkeit gegenüber Leistungseinbußen bei der Speicherleistung zu verbessern.

Wenn Ihre I/O Latenz höher als erforderlich ist, stellen Sie sicher, dass Ihre Anwendung nicht versucht, mehr IOPS oder Durchsatz zu erzielen, als Sie für Ihr Volume bereitgestellt haben. Mithilfe der VolumeAvgThroughput Metriken VolumeAvgIOPS und können Sie die durchschnittlichen IOPS und den Durchsatz, der Ihrem Volume pro Minute zugewiesen wird, überwachen und diese Werte dann mit den bereitgestellten IOPS und dem Durchsatz des Volumes vergleichen. Wenn das Volume während der Minute keine Vorgänge auslöst, geben die Messwerte einen Wert von Null () an. 0 Wenn Bursts mit hohem IOPS oder Durchsatz für einen kürzeren Zeitraum als das Minutenintervall auftraten, kommt es auf dem Volume zu Mikro-Bursts. Die durchschnittlichen IOPS- und Durchsatzkennzahlen geben jedoch möglicherweise an, dass Sie eine geringere Leistung erzielen als die bereitgestellten IOPS- oder Durchsatzgrenzwerte Ihres Volumes. Mithilfe der Metriken und können Sie ermitteln, ob bei Ihrem Volume innerhalb einer bestimmten Minute Leistungseinbrüche auftreten. VolumeIOPSExceededCheck VolumeThroughputExceededCheck Sie können diese Messwerte überwachen, um festzustellen, ob Ihr Workload stets versucht hat, IOPS oder einen Durchsatz zu steigern, der die von Ihrem Volume bereitgestellte Leistung in einer bestimmten Minute übersteigt. Wenn die gemessenen IOPS-Werte für eine Sekunde innerhalb einer Minute durchweg die von Ihrem Volume bereitgestellte IOPS-Leistung überschreiten, kehrt die Metrik zurück. VolumeIOPSExceededCheck 1 Wenn der getriebene Durchsatz für eine Sekunde innerhalb einer Minute durchweg die von Ihrem Volume bereitgestellte Durchsatzleistung übersteigt, kehrt die Metrik zurück. VolumeThroughputExceededCheck 1 Wenn die angetriebenen IOPS und der Durchsatz innerhalb der bereitgestellten Leistung Ihres Volumes liegen, werden die Messwerte zurückgegeben. 0

Wenn Ihre Anwendung eine größere Anzahl von IOPS benötigt, als Ihr Volume bereitstellen kann, sollten Sie eine der folgenden Optionen erwägen:

  • Ein gp3-, io2- oder io1-Volume, das mit genügend IOPS bereitgestellt wird, um die erforderliche Latenz zu erreichen

  • Ein größeres gp2-Volume, das eine ausreichende IOPS-Grundleistung bietet

HDD-backed st1und sc1 Volumes sind so konzipiert, dass sie bei Workloads, die die maximale I/O Größe von 1.024 KiB nutzen, am besten funktionieren. Um die durchschnittliche I/O Größe Ihres Volumes zu ermitteln, dividieren Sie durchVolumeWriteBytes. VolumeWriteOps Dieselbe Berechnung gilt für Leseoperationen. Wenn die durchschnittliche I/O Größe unter 64 KiB liegt, sollte eine Erhöhung der Größe der an ein st1 sc1 OR-Volume gesendeten I/O Operationen die Leistung verbessern.

Überwachen Sie den Burst-Bucket-Saldo für sc1 Volumes gp2st1, und

BurstBalance zeigt die Burst Bucket-Menge für die Volumes gp2, st1 und sc1 als Prozentsatz der Restmenge an. Wenn Ihr Burst-Bucket aufgebraucht ist, wird das Volumen I/O (für gp2 Volumes) oder der Volumendurchsatz (für st1 und sc1 Volumes) auf den Ausgangswert gedrosselt. Prüfen Sie den BurstBalance-Wert, um festzustellen, ob Ihr Volume aus diesem Grund gedrosselt wird. Eine vollständige Liste der verfügbaren Amazon EBS-Metriken finden Sie unter CloudWatch Amazon-Metriken für Amazon EBS Amazon EBS-Metriken für Nitro-based Instances.

Überwachen Sie Leistungsstatistiken in Echtzeit I/O

Sie können in Echtzeit auf detaillierte Leistungsstatistiken für Amazon EBS-Volumes zugreifen, die Nitro-based Amazon EC2 EC2-Instances zugeordnet sind.

Sie können diese Statistiken kombinieren, um die durchschnittliche Latenz und die IOPS abzuleiten oder um zu überprüfen, ob I/O Vorgänge abgeschlossen werden. Sie können auch die Gesamtzeit anzeigen, in der Ihre Anwendung die bereitgestellten IOPS- oder Durchsatzgrenzwerte Ihres EBS-Volumes oder der angehängten Instance überschritten hat. Indem Sie den Anstieg dieser Statistiken im Laufe der Zeit verfolgen, können Sie feststellen, ob Sie die bereitgestellten IOPS oder die Durchsatzgrenzen erhöhen müssen, um die Leistung Ihrer Anwendung zu optimieren. Die detaillierten Leistungsstatistiken enthalten auch Histogramme für Lese- und I/O Schreibvorgänge, die eine Verteilung Ihrer I/O Latenz ermöglichen, indem sie die Gesamtzahl der innerhalb eines Latenzbandes abgeschlossenen I/O Operationen verfolgen.

Weitere Informationen finden Sie unter Detaillierte Leistungsstatistiken von Amazon EBS.

Zugehörige Ressourcen

Weitere Informationen zu den I/O Merkmalen von Amazon EBS finden Sie in der folgenden re:Invent-Präsentation: Amazon EBS: Designing for Performance.