Wie erkenne ich, ob es sich bei meinem EBS-Volume um Micro-Bursting handelt, und stelle sicher, dass die Leistung dadurch nicht beeinträchtigt wird?

Lesedauer: 4 Minute
0

Ich habe ein Amazon Elastic Block Store (Amazon EBS)-Volume, das sein Quota für den Durchsatz oder E/A-Vorgänge pro Sekunde (IOPS) in Amazon CloudWatch nicht erreicht hat. Das Volume ist jedoch gedrosselt und weist eine hohe Latenz und Warteschlangenlänge auf.

Lösung

CloudWatch-Metriken erfassen jede Minute Stichproben. E/A-Vorgänge erfolgen jedoch im Millisekundentakt. Wenn auf dem Volume während eines kürzeren Zeitintervalls als dem Erfassungsintervall hohe IOPS- oder Durchsatzraten auftreten, erfasst CloudWatch den Burst nicht.

CloudWatch-Metriken verwenden, um mögliches Micro-Bursting zu ermitteln

Überprüfung der VolumeIdleTime-Metrik

Das VolumeIdleTime-Metrikdiagramm zeigt die Anzahl der Sekunden, in denen du innerhalb einer bestimmten Dauer keinen Lese- oder Schreibvorgang gesendet hast. Wenn die VolumeIdleTime hoch ist, war das Volume die meiste Zeit inaktiv. Wenn innerhalb derselben Dauer ausreichend hohe IOPS- oder Durchsatzraten aufgetreten sind, ist es bei dem Volume zu Micro-Bursting gekommen.

Berechnung des durchschnittlichen Durchsatzes und der durchschnittlichen IOPS, die das EBS-Volume empfangen hat

Verwende die folgende Formel, um den durchschnittlichen Durchsatz des Amazon-EBS-Volumes zu berechnen:

Geschätzter durchschnittlicher Durchsatz = ( Sum(VolumeReadBytes) + Sum(VolumeWriteBytes) ) / Ceil(Period – Sum(VolumeIdleTime))

Verwende die folgende Formel, um die durchschnittlichen IOPS für das EBS-Volume zu berechnen:

Geschätzte durchschnittliche IOPS = ( Sum(VolumeReadOps) + Sum(VolumeWriteOps) ) / Ceil(Period – Sum(VolumeIdleTime))

Verwendung von CloudWatch, um das Micro-Bursting-Ereignis abzurufen

Führe die folgenden Schritte aus:

  1. Öffne die CloudWatch-Konsole.
  2. Wähle Alle Metriken aus.
  3. Verwende die Volume-ID, um nach dem Volume zu suchen, bei dem Micro-Bursting aufgetreten ist.
  4. Wähle EBS und dann Metriken pro Volume.
  5. Um Durchsatzmetriken anzuzeigen, wähle VolumeReadBytes, VolumeWriteBytes und VolumeIdleTime aus.
  6. Wähle Grafisch dargestellte Metriken.
  7. Wähle für Statistik die Option Summe aus. Wähle für Zeitraum die Option 1 Minute aus.
  8. Wähle für Math. hinzufügen die Option Mit leerem Ausdruck beginnen.
  9. Verwende für Details of Expression (Details zum Ausdruck) die zugewiesenen Diagramm-IDs für VolumeReadBytes, VolumeWriteBytes, VolumeIdleTime, um die Formel für den geschätzten durchschnittlichen Durchsatz in Bit/s zu erstellen.

Verwende beispielsweise die Berechnung (m1 + m2)/Ceil(60 – m3).

Hinweis: Verwende Ceil, um Randfälle bei der Berechnung zu vermeiden. Die Berechnung (m1 + m2)/Ceil(60 – m3) behandelt Szenarien, in denen die VolumeIdleTime dem Zeitraum sehr nahe kommt, z. B. 59 999999. Um eine genauere Berechnung zu ermöglichen, verhindert Ceil, dass Werte nahe Null das Ergebnis verändern.

Wenn das Diagramm einen Wert zeigt, der über dem maximalen Durchsatz für das Volume liegt, handelt es sich bei der Workload um Micro-Bursting.

Führe die vorherigen Schritte aus, um zu überprüfen, ob E/A-Vorgänge das Micro-Bursting verursacht haben. Ersetze in Schritt 5 VolumeReadBytes, VolumeWriteBytes und VolumeIdleTime durch VolumeReadOps, VolumeWriteOps und VolumeIdleTime.

Verwendung eines Tools auf Betriebssystemebene, um Micro-Bursting zu bestätigen

Bei einem EBS-Volume kann es selbst bei niedriger VolumeIdleTime zu Micro-Bursting kommen. Verwende für Volumes mit niedriger VolumeIdleTime Tools auf Betriebssystemebene (OS) mit detaillierter Erfassung von Beispielen, um effizienter zu ermitteln, ob es sich bei der Workload um Micro-Bursting handelt.

Linux

Führe den Befehl iostat aus, um E/A-Statistiken für alle eingelegten Volumes mit einer Granularität von 1 Sekunde zu melden:

iostat -xdmzt 1

Das Tool iostat ist Teil des sysstat-Pakets. Wenn du den Befehl iostat nicht finden kannst, führe den folgenden Befehl aus, um sysstat auf Amazon Linux Application Machine Images (AMIs) zu installieren:

sudo yum install sysstat -y

Weitere Informationen findest du auf der Linux-Website unter iostat(1).

Um festzustellen, ob du das Durchsatzkontingent erreicht hast, überprüfe die rMbit/s und wMbit/s in der Ausgabe. Wenn rMbit/s + wMbit/s größer als der maximale Durchsatz für das Volume ist, kommt es beim Volume zu Micro-Bursting.

Um festzustellen, ob du das IOPS-Kontingent erreicht hast, überprüfe rps und wps in der Ausgabe. Wenn rps + wps größer als die maximalen IOPS des Volumes ist, kommt es beim Volume zu Micro-Bursting.

Windows

Führe den Befehl perfmon im Windows Performance Monitor aus. Weitere Informationen findest du unter Deine IOPS- und Durchsatzanforderungen festlegen.

Änderung der Volume-Größe oder des Volume-Typs, um Anwendungen anzupassen und Micro-Bursting zu verhindern

Micro-Bursting kann zu E/A-Drosselung oder E/A-Latenz in deiner Anwendung führen. Um dieses Problem zu verhindern, ändere das Volume auf einen Typ und eine Größe, die deinen angeforderten IOPS und deinem Durchsatz entsprechen, selbst bei Micro-Bursting-Leveln. Weitere Informationen findest du unter Amazon EBS-Volumetypen.

Es gibt einen maximalen IOPS-Wert und Durchsatz, den die Instance auf alle angefügten EBS-Volumes übertragen kann. Weitere Informationen findest du unter Amazon-EBS-optimierte Instance-Typen.

Es hat sich bewährt, die Volumes mit der Workload zu vergleichen, um die Volume-Typen zu ermitteln, die die Workload in einer Testumgebung sicher bewältigen können.