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.
Amazon EBS I/O-Merkmale und Überwachung
In einer bestimmten Volume-Konfiguration hängt das Leistungsverhalten Ihrer EBS-Volumes von bestimmten I/O-Merkmalen ab.
-
SSD-gestützte Volumes, Allzweck-SSD (
gp2
undgp3
) und bereitgestellte IOPS-SSD (io1
undio2
), bieten gleichbleibende Leistung, unabhängig davon, ob ein I/O-Vorgang zufällig oder sequentiell erfolgt. -
Festplattengestützte Volumes, Throughput Optimized HDD (
st1
) und Cold HDD (sc1
), bieten nur dann optimale Leistung, wenn I/O-Operationen umfangreich und sequentiell sind.
Um zu verstehen, wie hoch die Leistung der SSD- und HDD-Volumes in Ihrer Anwendung ist, sollten Sie den Zusammenhang zwischen den Anforderungen auf dem Volume, der verfügbaren IOPS-Menge, der Zeit bis zum Abschluss einer I/O-Operation und den Durchsatzlimits des Volumes kennen.
Themen
IOPS
IOPS sind eine Maßeinheit, die input/output operations per second. The operations are measured in KiB, and the underlying drive technology determines the maximum amount of data that a volume type counts as a single I/O. I/O size is capped at 256 KiB for SSD volumes and 1,024 KiB for HDD volumes because SSD volumes handle small or random I/O wesentlich effizienter ist als HDD-Volumes.
Wenn kleine I/O-Operationen physisch sequenziell sind, versucht Amazon EBS, diese bis zur maximalen I/O-Größe in einer einzelnen I/O-Operation zusammenführen. Wenn I/O-Vorgänge größer als die maximale I/O-Größe sind, versucht Amazon EBS, sie in kleinere I/O-Vorgänge aufzuteilen. Die folgende Tabelle zeigt einige Beispiele.
Volume-Typ | Maximale I/O-Größe | I/O-Vorgänge aus Ihrer Anwendung | Anzahl IOPS | Hinweise |
---|---|---|---|---|
SSD | 256 KiB | 1 x 1024-KiB-I/O-Vorgang | 4 (1 024÷256=4) | Amazon EBS teilt den 1 024 großen I/O-Vorgang in vier kleinere Operationen mit 256 KiB auf. |
8 x sequenzielle 32-KiB-I/O-Vorgänge | 1 (8x32=256) | Amazon EBS führt die acht sequentiellen 32-KiB-I/O-Vorgänge zu einem einzigen Vorgang mit 256 KiB zusammen. | ||
8 x zufällige 32-KB-I/O-Vorgänge | 8 | Amazon EBS zählt zufällige I/O-Vorgänge separat. | ||
HDD | 1 024 KiB | 1 x 1024-KiB-I/O-Vorgang | 1 | Der I/O-Vorgang ist bereits gleich der maximalen I/O-Größe. Er wird nicht zusammengeführt oder geteilt. |
8 x sequenzielle 128-KiB-I/O-Vorgänge | 1 (8x128=1 024) | Amazon EBS führt die acht sequentiellen 128-KiB-I/O-Vorgänge zu einem einzigen Vorgang mit 1 024 KiB zusammen. | ||
8 x zufällige 32-KB-I/O-Vorgänge | 8 | Amazon EBS zählt zufällige I/O-Vorgänge separat. |
Wenn Sie also ein SSD-gestütztes Volume erstellen, das 3.000 IOPS unterstützt (entweder durch die Bereitstellung eines io1
io2
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-optimierten Instance zuordnen, die ausreichend Bandbreite bereitstellen kann, können Sie bis zu 3.000 I/Os an Daten pro Sekunde übertragen, wobei der Durchsatz von der I/O-Größe bestimmt wird.
Länge und Latenz der Volume-Warteschlange
Die Volume-Warteschlangenlänge ist die Anzahl der ausstehenden I/O-Anforderungen für ein Gerät. Latenz ist die tatsächliche end-to-end Client-Zeit eines I/O-Vorgangs, d. h. die Zeit, die zwischen dem Senden einer I/O an EBS und dem Empfang einer Bestätigung von EBS, dass der I/O-Lese- oder Schreibvorgang abgeschlossen ist, verstrichen ist. Die Warteschlangenlänge muss korrekt mit der I/O-Größe und -Latenz kalibriert werden, damit es weder im Gast-Betriebssystem noch bei der Netzwerkverbindung zu EBS zu Engpässen kommt.
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 ausreichend I/O-Anforderungen sendet, um die für Ihr EBS-Volume verfügbare Leistung voll auszuschöpfen, liefert Ihr Volume möglicherweise nicht die IOPS-Rate oder den Durchsatz, die bzw. den Sie bereitgestellt haben.
Transaktionsintensive Anwendungen reagieren empfindlich auf eine höhere I/O-Latenz und eignen sich sehr gut für SSD-gestützte Volumes. 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 die Zahl der an das Volume gesendeten IOPS kontinuierlich dessen Kapazität übersteigt, kann dies zu einer höheren I/O-Latenz führen.
Durchsatzintensive Anwendungen reagieren weniger empfindlich auf eine höhere I/O-Latenz und eignen sich sehr gut für HDD-gestützte Volumes. Sie können einen hohen Durchsatz zu HDD-gestützten Volumes beibehalten, indem Sie für große, sequenzielle I/O-Operationen eine lange Warteschlange verwenden.
Einschränkungen in Bezug auf die I/O-Größe und den Volume-Durchsatz
Wenn Ihre I/O-Größe bei SSD-gestützten Volumes sehr hoch ist, ist die Anzahl der IOPS möglicherweise geringer als bereitgestellt, da Sie das Durchsatzlimit des Volumes erreichen. Beispiel: Ein gp2
Volume unter 1.000 GiB mit verfügbaren Burst-Credits hat ein IOPS-Limit von 3.000, und ein Volumendurchsatzlimit von 250 MiB/s. If you are using a
256 KiB I/O size, your volume reaches its throughput limit at 1000 IOPS (1000 x 256 KiB =
250 MiB). For smaller I/O sizes (such as 16 KiB), this same volume can sustain
3,000 IOPS because the throughput is well below 250 MiB/s. (These examples
assume that your volume's I/O erreicht nicht die Durchsatzgrenzen der Instance.) 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 Ihnen möglicherweise ein higher-than-provisioned IOPS-Wert angezeigt, der innerhalb Ihrer Instance gemessen wird. Dies geschieht, wenn das Instance-Betriebssystem kleine I/O-Operationen in einer größeren Operation zusammenführt, bevor sie an Amazon EBS gesendet werden.
Wenn Ihr Workload sequenzielle I/O-Operationen auf HDD-gestützten st1
- und sc1
-Volumes verwendet, ist die Anzahl der in der Instance gemessenen IOPS vielleicht höher als erwartet. Dies geschieht, wenn das Instance-Betriebssystem sequenzielle I/O-Operationen zusammenführt und sie in Einheiten mit einer Größe von 1 024 KiB zählt. Wenn Ihr Workload kleine oder zufällige I/O-Verfahren verwendet, ist der Durchsatz möglicherweise geringer als erwartet. Dies liegt daran, das jede zufällige, nicht sequenzielle I/O in die IOPS-Gesamtanzahl einfließt. Das kann dazu führen, dass Sie das IOPS-Limit des Volumes früher als erwartet erreichen.
Unabhängig von Ihrem EBS-Volume-Typ sollten Sie sicherstellen, dass Ihre EC2 Instance-Bandbreite nicht der limitierende Faktor ist, wenn Sie nicht den erwarteten IOPS- oder Durchsatz in Ihrer Konfiguration erzielen. Sie sollten immer eine EBS-optimierte Instance der aktuellen Generation verwenden (oder eine, die bis zu 10 EBS-Volumes umfasst). Gb/s network connectivity) for optimal performance. Another possible cause for not experiencing the expected IOPS is that you are not driving enough I/O
Überwachen Sie die I/O-Eigenschaften mit CloudWatch
Sie können diese I/O-Eigenschaften anhand der Volumenmetriken der einzelnen CloudWatch Volumes überwachen.
Überwachen Sie, ob I/O blockiert ist
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 I/O-Operationen abschließen 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 Aktion „I/O anhalten“ 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.
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. Verwenden Sie die folgenden Formeln, um die durchschnittlichen IOPS und den Durchsatz zu berechnen, die Ihrem Volume über einen bestimmten Zeitraum zugewiesen wurden, und vergleichen Sie diese Werte dann mit den bereitgestellten IOPS und dem Durchsatz des Volumes.
Sum(VolumeReadOps) + Sum(VolumeWriteOps)
Estimated average IOPS in ops/s = ----------------------------------------
Period - Sum(VolumeIdleTime)
(Sum(VolumeReadBytes) + Sum(VolumeWriteBytes)) / 1024
Estimated average throughput in KiB/s = -----------------------------------------------------
Period - Sum(VolumeIdleTime)
Sie können auch anhand der VolumeThroughputExceededCheck
Metriken VolumeIOPSExceededCheck
und feststellen, ob Ihr Workload durchweg versucht hat, IOPS oder einen Durchsatz zu steigern, der die von Ihrem Volume bereitgestellte Leistung in einer bestimmten Minute übersteigt. Wenn die gesteuerten IOPS die von Ihrem Volume bereitgestellte IOPS-Leistung durchweg überschreiten, kehrt die Metrik zurück. VolumeIOPSExceededCheck
1
Wenn der getriebene Durchsatz durchweg die von Ihrem Volume bereitgestellte Durchsatzleistung übersteigt, gibt die Metrik einen Wert 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
- oderio1
-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-gestützte st1
- und sc1
-Volumes sind bei Workloads, die die maximale I/O-Größe von 1 024 KiB nutzen, am leistungsfähigsten. 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 kleiner als 64 KiB ist, können Sie eine Leistungsverbesserung erzielen, wenn Sie die Größe der I/O-Operationen erhöhen, die an ein st1
- oder sc1
-Volume gesendet werden.
Überwachen Sie das gp2
Burst-Bucket-Balancing fürst1
, 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-Guthaben erschöpft ist, wird das Volume-I/O-Guthaben (für gp2
-Volumes) oder das Volume-Durchsatzguthaben (für st1
- und sc1
-Volumes) auf den Basiswert 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 Nitro-basierte Instances.
Überwachen Sie I/O-Leistungsstatistiken in Echtzeit
Sie können in Echtzeit auf detaillierte Leistungsstatistiken für Amazon EBS-Volumes zugreifen, die an Nitro-basierte EC2 Amazon-Instances angehängt sind.
Sie können diese Statistiken kombinieren, um die durchschnittliche Latenz und die IOPS abzuleiten oder um zu überprüfen, ob I/O-Operationen 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 I/O-Lese- und 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 Amazon EBS-I/O-Merkmalen finden Sie in der re:Invent-Präsentation Amazon EBS: Designing for Performance