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-gestützte Volumes, Allzweck-SSD (
gp2
undgp3
) und Provisioned IOPS SSD (io1
undio2
), bieten gleichbleibende Leistung, unabhängig davon, ob es sich um einen zufälligen oder sequentiellen I/O Vorgang handelt. -
Festplattengestützte Volumes, Throughput Optimized HDD (
st1
) und Cold HDD (sc1
), bieten nur dann optimale Leistung, wenn umfangreiche und sequenzielle Operationen durchgeführt werden. I/O
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.
Themen
IOPS
IOPS ist eine Maßeinheit, die input/output Operationen pro Sekunde darstellt. Die Operationen werden in KiB gemessen, und die zugrunde liegende Laufwerkstechnologie bestimmt die maximale Datenmenge, die ein Volumetyp als einzelnes zählt, 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 viel effizienter 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 größer als die maximale I/O Größe sind, in kleinere I/O Operationen aufzuteilen. Die folgende Tabelle zeigt einige Beispiele.
Volume-Typ | Maximale Größe I/O | I/O-Vorgänge 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-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 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 Anfragen für ein Gerät. I/O Die Latenz ist die tatsächliche end-to-end Client-Zeit 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, verstrichen ist. I/O Die Länge der Warteschlange muss korrekt an I/O Größe und Latenz angepasst 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.
Transaktionsintensive Anwendungen reagieren empfindlich auf erhöhte I/O Latenz und eignen sich daher 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 einem Volume ständig mehr IOPS zugewiesen wird, als es verfügbar ist, kann dies zu einer erhöhten Latenz führen. I/O
Durchsatzintensive Anwendungen reagieren weniger empfindlich auf erhöhte I/O Latenz und eignen sich daher 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 groß ist, kann es zu einer geringeren Anzahl von IOPS kommen, als Sie bereitgestellt haben, weil Sie die Durchsatzgrenze 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 sequenziell I/Os auf Festplatten st1
und sc1
Volumes arbeitet, kann es sein, dass die Anzahl der IOPS, gemessen in Ihrer Instance, höher als erwartet ist. Dies passiert, wenn das Instance-Betriebssystem sequentiell zusammenführt I/Os und sie in Einheiten mit einer Größe von 1.024 KiB zählt. Wenn Ihr Workload einen kleinen oder zufälligen I/Os, you may experience a lower
throughput than you expect. This is because we count each random, non-sequential I/O Anteil an der gesamten IOPS-Anzahl verwendet, kann dies dazu führen, dass Sie das IOPS-Limit des Volumes früher als erwartet erreichen.
Unabhängig vom Typ Ihres EBS-Volumes sollten Sie sicherstellen, dass Ihre EC2 Instance-Bandbreite nicht der limitierende Faktor ist, wenn Sie nicht den erwarteten IOPS- oder Durchsatz in Ihrer Konfiguration erreichen. Für eine optimale Leistung sollten Sie immer eine EBS-optimierte 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 I/O ins Stocken geraten
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 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ützt st1
und sc1
Volumes sind so konzipiert, dass sie bei Workloads, die die maximale Größe von 1.024 KiB nutzen, die beste Leistung erbringen. I/O Um die durchschnittliche I/O Größe Ihres Volumes zu ermitteln, dividieren Sie durch. VolumeWriteBytes
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 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 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 und Amazon EBS-Metriken für Nitro-basierte Instances.
Überwachen Sie Leistungsstatistiken in Echtzeit I/O
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 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