View a markdown version of this page

I/O Eigenschaften 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 Eigenschaften 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 eine konsistente Leistung, unabhängig davon, ob ein I/O Vorgang zufällig oder sequentiell erfolgt.

  • HDD-backed Volumes, Throughput Optimized HDD (st1) und Cold HDD (sc1), bieten nur bei umfangreichen und sequentiellen I/O Vorgängen eine optimale Leistung.

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, die bis zum Abschluss eines I/O Vorgangs benötigt wird, und den Durchsatzgrenzen des Volumes zu kennen.

E/A\Sek

IOPS sind eine Maßeinheit, die input/output Operationen pro Sekunde darstellt. Die Operationen werden in KiB gemessen, und die zugrundeliegende Antriebstechnologie bestimmt die maximale Datenmenge, die ein Datenträgertyp als Einheit 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 Volumes I/O viel effizienter verarbeiten als HDD-Volumes.

Wenn kleine I/O Operationen physisch sequentiell ablaufen, versucht Amazon EBS, sie bis zur maximalen Größe zu einem einzigen I/O Vorgang zusammenzuführen. I/O Ähnlich versucht Amazon EBS, I/O Operationen, die die maximale I/O Größe überschreiten, in kleinere Operationen aufzuteilen. I/O 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-Vorgang 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 einer einzigen 256-KiB-Operation zusammen.
8 zufällige 32-KiB-Operationen I/O 8 Amazon EBS zählt zufällige I/O Operationen separat.
HDD 1 024 KiB Betrieb mit 1 x 1024 KiB I/O 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-KiB-Operationen zu einer einzigen 1.024-KiB-Operation zusammen. I/O
8 zufällige 32-KiB-Operationen I/O 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 indem Sie ein io1 io2 OR-Volume mit 3.000 IOPS bereitstellen, indem Sie ein gp2 Volume auf 1.000 GiB dimensionieren oder ein gp3 Volume verwenden), und Sie es an eine EBS-optimized Instance anhängen, 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 ist die Anzahl der ausstehenden I/O Anfragen für ein Gerät. Die Latenz ist die tatsächliche Client-Zeit eines I/O Vorgangs, mit anderen Worten, die Zeit, die zwischen dem Senden einer Nachricht an EBS und dem Empfangen einer I/O Bestätigung von EBS verstrichen ist, dass der I/O Lese- oder Schreibvorgang abgeschlossen ist. Die Warteschlangenlänge muss korrekt auf I/O Größe und Latenz abgestimmt werden, um Engpässe entweder auf dem Gastbetriebssystem oder auf 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 übermittelt, um die für Ihr EBS-Volume verfügbare Leistung voll auszuschöpfen, 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 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 ein Volume ständig mehr IOPS als zur Verfügung steht, 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 einer pro 1.000 bereitgestellten 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 eine hohe Warteschlangenlänge beibehalten, wenn große, I/O sequentielle Aufgaben ausgeführt werden.

I/O Grenzwerte für Größe und Volumen beim Durchsatz

Bei SSD-backed Volumes kann es bei sehr großen Datenträgern zu I/O einer geringeren Anzahl von IOPS kommen, als Sie bereitgestellt haben, da Sie das Durchsatzlimit des Volumes erreichen. Beispielsweise hat ein gp2 Volume unter 1.000 GiB, für das Burst-Guthaben verfügbar ist, 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 sein Durchsatzlimit 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 unterstützen, da der Durchsatz deutlich unter 250 liegt. MiB/s (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 IOPS-Wert angezeigt, der höher ist als der bereitgestellte IOPS-Wert, 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 sie an Amazon EBS übergeben werden.

Wenn Ihr Workload sequenzielles I/Os Einschalten HDD-backed st1 und sc1 Volumes verwendet, kann es sein, dass die Anzahl von IOPS, gemessen innerhalb Ihrer Instance, höher als erwartet ist. Das passiert, wenn das Instance-Betriebssystem sequentiell zusammenführt I/Os und sie in 1.024 Einheiten zählt. KiB-sized Wenn Ihre Arbeitslast klein oder zufällig verwendet wird I/Os, ist der Durchsatz möglicherweise niedriger als erwartet. Das liegt daran, dass alle zufälligen, nicht sequentiellen I/O IOPS-Werte zur Gesamtzahl der IOPS gezählt werden, was dazu führen kann, dass Sie das IOPS-Limit des Volumes früher als erwartet erreichen.

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

Überwachen Sie die Eigenschaften I/O mit CloudWatch

Sie können diese I/O Merkmale mit den 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. Die Metrik ist ein Binärwert, 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 ausfällt, 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 angeschlossen ist, anhalten 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 Pause-Aktion 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 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 mithilfe 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 einer Verschlechterung der Speicherleistung zu verbessern.

Wenn Ihre I/O Latenz höher ist als Sie benötigen, stellen Sie sicher, dass Ihre Anwendung nicht versucht, mehr IOPS oder Durchsatz zu erzielen, als Sie für Ihr Volume bereitgestellt haben. Sie können die VolumeAvgThroughput Metriken VolumeAvgIOPS und verwenden, um die durchschnittlichen IOPS und den Durchsatz Ihres Volumes innerhalb einer Minute zu überwachen und diese dann mit den bereitgestellten IOPS und dem Durchsatz des Volumes zu vergleichen. Wenn das Volume während einer Minute keine Operationen durchführt, melden die Metriken den Wert Null (). 0 Wenn Bursts mit hohen IOPS oder Durchsatz für einen kürzeren Zeitraum als das Minutenintervall auftreten, kommt es auf dem Volume zu Mikro-Bursts. Die durchschnittlichen IOPS- und Durchsatzmetriken geben jedoch möglicherweise an, dass Sie eine niedrigere Leistung erzielen, als die für Ihr Volume bereitgestellten IOPS- oder Durchsatzgrenzwerte. Mithilfe der Messwerte und können Sie ermitteln, ob es bei Ihrem Volume innerhalb einer bestimmten Minute zu Leistungsspitzen kommt. VolumeIOPSExceededCheck VolumeThroughputExceededCheck Sie können diese Metriken überwachen, um festzustellen, ob Ihre Arbeitslast in einer bestimmten Minute kontinuierlich versucht hat, IOPS oder einen Durchsatz zu erzielen, der die von Ihrem Volume bereitgestellte Leistung übersteigt. Wenn die berechneten IOPS-Werte für eine Sekunde innerhalb einer Minute konstant die von Ihrem Volume bereitgestellte IOPS-Leistung überschreiten, wird die Metrik zurückgegeben. VolumeIOPSExceededCheck 1 Wenn der getriebene Durchsatz für eine Sekunde innerhalb einer Minute die von Ihrem Volume bereitgestellte Durchsatzleistung konstant übersteigt, wird die Metrik zurückgegeben. VolumeThroughputExceededCheck 1 Wenn der getriebene IOPS und der Durchsatz innerhalb der von Ihrem Volume bereitgestellten Leistung liegen, kehren die Metriken zurück. 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 Größe von 1.024 KiB nutzen, am besten funktionieren. I/O Um die durchschnittliche I/O Größe Ihres Volumes zu ermitteln, teilen Sie es 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 oder sc1 -Volume gesendeten I/O Operationen die Leistung verbessern.

Überwachen Sie das Burst-Bucket-Gleichgewicht für GP2-, ST1- und SC1-Volumes

BurstBalance zeigt die Burst Bucket-Menge für die Volumes gp2, st1 und sc1 als Prozentsatz der Restmenge an. Wenn Ihr Burst-Bucket erschöpft ist, wird das Volumen I/O (für gp2 Volumes) oder der Volumendurchsatz (für Volumes 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 und Amazon EBS-Metriken für Instances. Nitro-based

Überwachen Sie Leistungsstatistiken in Echtzeit I/O

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

Sie können diese Statistiken kombinieren, um die durchschnittliche Latenz und IOPS abzuleiten oder um zu überprüfen, ob die I/O Operationen abgeschlossen werden. Sie können auch die Gesamtzeit einsehen, 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 Ihre bereitgestellten IOPS- oder Durchsatzgrenzwerte 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 angeben, 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.