Wie erkenne ich, ob es sich bei meinem Amazon EBS-Volume um Micro-Bursting handelt, und stelle dann sicher, dass die Leistung dadurch nicht beeinträchtigt wird?
Ich habe ein Amazon Elastic Block Store (Amazon EBS)-Volume, das den Grenzwert für Durchsatz oder Eingabe-/Ausgabevorgä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 helfen bei der Überwachung der IOPS und des Durchsatzes bei allen Amazon EBS-Volume-Typen. CloudWatch-Metriken sammeln Stichproben in Intervallen von einer Minute. E/A-Operationen werden jedoch im Millisekundentakt ausgeführt. Wenn auf dem Volume während eines kürzeren Zeitintervalls als dem Erfassungsintervall hohe IOPS- oder Durchsatzraten auftreten, erfasst CloudWatch den Burst nicht. Dieser Fehler tritt auf, weil die Metriküberwachung im Sekundentakt erfolgt.
CloudWatch-Metriken verwenden, um mögliches Micro-Bursting zu identifizieren
Überprüfung der VolumeIdleTime-Metrik
Das metrische VolumeIdleTime-Diagramm zeigt die Anzahl der Sekunden, in denen während einer bestimmten Dauer kein Lese- oder Schreibvorgang abgeschickt wurde. Wenn die VolumeIdleTime hoch ist, war das Volume die meiste Zeit inaktiv. Wenn während derselben Dauer ausreichend hohe IOPS oder ein ausreichend hoher Durchsatz erreicht wurden, kam es bei diesem Volumen zum Micro-Bursting.
Berechnung des durchschnittlichen Durchsatzes und der durchschnittlichen IOPS, die das EBS-Volume empfangen hat
Verwende die folgende Formel, um den durchschnittlichen Durchsatz des EBS-Volumes zu berechnen:
Geschätzter durchschnittlicher Durchsatz in Byte/s = (Sum(VolumeReadBytes) + Sum(VolumeWriteBytes) ) / (Period - Sum(VolumeIdleTime) )
Verwende die folgende Formel, um die durchschnittlichen IOPS für das EBS-Volume zu berechnen:
Geschätzte durchschnittliche IOPS in Ops = (Sum(VolumeReadOps) + Sum(VolumeWriteOps) ) / ( Period - Sum(VolumeIdleTime) )
Verwendung von CloudWatch, um das Micro-Bursting-Ereignis abzurufen
Führe die folgenden Schritte aus:
- Öffne die CloudWatch-Konsole.
- Wähle Alle Metriken.
- Verwende die Volume-ID, um nach dem Volume zu suchen, bei dem Micro-Bursting aufgetreten ist.
- Wähle EBS und dann Metriken pro Volume.
- Um Durchsatzmetriken anzuzeigen, wähle VolumeReadBytes, VolumeWriteBytes und VolumeIdleTime aus.
- Wähle Grafisch dargestellte Metriken.
- Wähle für Statistiken die Option Summe und für Zeitraum die Option 1 Minute aus.
- Wähle für Math. hinzufügen die Option Mit leerem Ausdruck beginnen.
- Verwende für die Details zum Ausdruck die zugewiesenen Diagramm-IDs für VolumeReadBytes, VolumeWriteBytes, VolumeIdleBytes. Daraus ergibt sich die Formel für den geschätzten durchschnittlichen Durchsatz in Byte/s.
Zum Beispiel: (m1+m2)/(60-m3).
Wenn das Diagramm einen Wert zeigt, der über dem maximalen Durchsatz für das Volume liegt, handelt es sich beim Workload um Micro-Bursting.
Gehe wie zuvor beschrieben vor, um zu überprüfen, ob aufgrund von E/A-Operationen ein Micro-Bursting aufgetreten ist. Ersetze dann in Schritt 5 VolumeReadBytes, VolumeWriteBytes und VolumeIdleTime durch VolumeReadOps, VolumeWriteOps und VolumeIdleTime.
Verwendung eines Tool auf Betriebssystemebene, um Micro-Bursting zu bestätigen
Bei einem EBS-Volume kann es auch dann zu Micro-Bursting kommen, wenn ein Volume besetzt ist (VolumeIdleTime ist niedrig). Bei Volumes mit niedrigem VolumeIdleTime-Wert sind Tools auf Betriebssystemebene mit detaillierter Erfassung von Beispielen eine effizientere Methode, um festzustellen, ob es sich beim Workload um Micro-Bursting handelt.
Linux
Um E/A-Statistiken für alle gemounteten Volumes mit einer Granularität von einer Sekunde zu erstellen, führe den Befehl iostat aus:
iostat -xdmzt 1
Weitere Informationen findest du auf der Linux-Handbuchseite unter iostat(1).
Hinweis: 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 (AMI) zu installieren:
sudo yum install sysstat -y
Um festzustellen, ob du den Durchsatzgrenzwert erreichst, ü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 den IOPS-Grenzwert erreichst, ü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-Leistungsmonitor 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 dies 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-Volume-Typen. Die IOPS und der Durchsatz, den die Instance an alle angehängten EBS-Volumes mithilfe von Push übertragen kann, ist begrenzt.
Es hat sich bewährt, Volumes mit dem Workload zu vergleichen, um zu prüfen, welche Volume-Typen den Workload in einer Testumgebung sicher bewältigen können. Weitere Informationen findest du unter Durchführen von Benchmark-Tests für Amazon EBS-Volumes.
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 3 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 2 Jahren