Leistung von Amazon-EBS-Volumes - 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.

Leistung von Amazon-EBS-Volumes

Mehrere Faktoren, einschließlich I/O-Merkmalen und der Konfiguration von Instances und Volumes, können sich auf die Leistung von Amazon EBS auswirken. Wenn Sie die Anweisungen auf unseren Produktdetailseiten für Amazon EBS und Amazon EC2 befolgen, erzielen Sie normalerweise eine gute Leistung. Es gibt jedoch einige Fälle, in denen Sie möglicherweise eine Optimierung vornehmen müssen, um eine Spitzenleistung zu erzielen. Wir empfehlen Ihnen, die Leistung anhand von Informationen aus Ihrer tatsächlichen Workload zu optimieren und mithilfe von Benchmark-Tests die optimale Konfiguration zu finden. Nachdem Sie sich mit den Grundlagen zum Verwenden von EBS-Volumes vertraut gemacht haben, sollten Sie die erforderliche I/O-Leistung ermitteln. Prüfen Sie dann, wie Sie die Amazon EBS-Leistung erhöhen können, um diese Anforderungen zu erfüllen.

AWS Aktualisierungen der Leistung von EBS-Volume-Typen werden möglicherweise nicht sofort auf Ihren vorhandenen Volumes wirksam. Zum Anzeigen der vollen Leistung eines älteren Volumes müssen Sie zunächst eine ModifyVolume-Aktion darauf ausführen. Weitere Informationen finden Sie unter Ändern eines Volumes mit Amazon EBS Elastic Volumes.

Tipps zur Amazon EBS-Leistung

Diese Tipps stellen die bewährten Methoden dar, um in einer Vielzahl von Benutzerszenarien die optimale Leistung für EBS-Volumes zu erzielen.

Verwenden von EBS-optimierten Instances

Auf Instances, die den EBS-optimierten Durchsatz nicht unterstützen, kann der Netzwerkverkehr mit dem Datenverkehr zwischen Ihrer Instance und Ihren EBS-Volumes konkurrieren. Auf EBS-optimierten Instances werden die beiden Datenverkehrsarten voneinander getrennt. Für einige EBS-optimierte Instance-Konfigurationen können zusätzliche Kosten anfallen (beispielsweise C3, R3 und M3), während andere ohne Aufpreis EBS-optimiert sind (beispielsweise M4, C4, C5 und D2). Weitere Informationen finden Sie unter Optimieren der Amazon-EBS-Leistung.

Informationen zum Berechnen der Leistung

Wenn Sie die Leistung Ihrer EBS-Volumes messen, sollten Sie die verwendeten Maßeinheiten kennen und wissen, wie die Leistung berechnet wird. Weitere Informationen finden Sie unter Amazon-EBS-E/A-Merkmale und -Überwachung.

Informationen zum Workload

Es gibt einen Zusammenhang zwischen der maximalen Leistung der EBS-Volumes, der Größe und Anzahl von I/O-Operationen und der Zeit, die zum Abschließen der einzelnen Aktionen notwendig ist. Jeder dieser Faktoren (Leistung, I/O und Latenz) wirkt sich auf die anderen aus und die verschiedenen Anwendungen reagieren unterschiedlich empfindlich auf die einzelnen Faktoren. Weitere Informationen finden Sie unter Durchführen von Benchmark-Tests für EBS-Volumes.

Berücksichtigen der Leistungseinbußen, die beim Initialisieren von Volumes aus Snapshots auftreten

Die Latenz steigt erheblich an, wenn Sie zuerst auf jeden Datenblock in einem neuen EBS-Volume zugreifen, das aus einem Snapshot erstellt wurde. Sie können diesen Leistungseinbruch mit einer der folgenden Optionen vermeiden:

  • Greifen Sie auf jeden Block zu, bevor Sie das Volumen in die Produktion bringen. Dieser Prozess heißt Initialisierung (früher als "Vorwärmung" bezeichnet). Weitere Informationen finden Sie unter Initialisieren von Volumes Amazon EBS.

  • Aktivieren Sie die schnelle Snapshot-Wiederherstellung für einen Snapshot, um sicherzustellen, dass die daraus erstellten EBS-Volumes bei der Erstellung vollständig initialisiert werden und sofort die gesamte bereitgestellte Leistung erbringen. Weitere Informationen finden Sie unter Schnelle Amazon EBS-Snapshot-Wiederherstellung.

Faktoren, die die HDD-Leistung beeinträchtigen können

Wenn Sie einen Snapshot eines durchsatzoptimierten HDD-Volumes (st1) oder Cold-HDD-Volumes (sc1) erstellen, kann die Leistung bis auf den Basiswert des Volumes absinken, während der Snapshot generiert wird. Dieses Verhalten ist für diese Volume-Typen spezifisch. Auch andere Faktoren wirken sich auf die Leistung aus, etwa das Generieren von mehr Durchsatz, als die Instance unterstützen kann, die Leistungseinbußen beim Initialisieren von Volumes, die aus einem Snapshot erstellt werden, und zu viele kleine, zufällige I/O-Operationen auf dem Volume. Weitere Informationen zum Berechnen des Durchsatzes für HDD-Volumes finden Sie unter Amazon EBS-Volume-Typen.

Die Leistung kann auch beeinträchtigt werden, wenn Ihre Anwendung nicht genügend I/O-Anforderungen sendet. Dies können Sie feststellen, indem Sie sich die Warteschlangenlänge und die I/O-Größe ansehen. Die Warteschlangenlänge ist die Anzahl der ausstehenden I/O-Anforderungen von Ihrer Anwendung an Ihr Volume. Um maximale Konsistenz zu erzielen, müssen HDD-basierte Volumes eine Warteschlangenlänge (gerundet auf die nächste Ganzzahl) von mindestens 4 aufrechterhalten, wenn eine sequenzielle I/O-Operation von 1 MiB durchgeführt wird. Weitere Informationen zur Sicherstellung einer konsistenten Leistung Ihrer Volumes finden Sie unter Amazon-EBS-E/A-Merkmale und -Überwachung.

Erhöhen des Read-Aheads für leseintensive Workloads mit hohem Durchsatz auf st1 und sc1 (nur Linux-Instances)

Einige Workloads sind leseintensiv und greifen über den Betriebssystem-Seiten-Cache auf das Blockgerät zu (z. B. aus einem Dateisystem). Um den maximalen Durchsatz zu erzielen, empfehlen wir in diesem Fall, eine Read-Ahead-Einstellung von 1 MiB zu konfigurieren. Dies ist eine per-block-device Einstellung, die nur auf Ihre HDD-Volumes angewendet werden sollte.

Verwenden Sie den folgenden Befehl, um den aktuellen Wert des Read-Aheads für Ihre Blockgeräte zu überprüfen:

[ec2-user ~]$ sudo blockdev --report /dev/<device>

Die Blockgerätinformationen werden im folgenden Format zurückgegeben:

RO RA SSZ BSZ StartSec Size Device rw 256 512 4096 4096 8587820544 /dev/<device>

Das angezeigte Gerät meldet einen Read-Ahead-Wert (RA) von 256 (Standardwert). Multiplizieren Sie diese Zahl mit der Sektorgröße (512 Bytes), um die Größe des Read-Ahead-Puffers zu ermitteln, der in diesem Fall 128 KiB groß ist. Verwenden Sie den folgenden Befehl, um den Pufferwert auf 1 MiB festzulegen:

[ec2-user ~]$ sudo blockdev --setra 2048 /dev/<device>

Stellen Sie sicher, dass für die Read-Ahead-Einstellung nun 2 048 angezeigt wird, indem Sie den ersten Befehl erneut ausführen.

Verwenden Sie diese Einstellung nur, wenn Ihr Workload aus großen, sequenziellen I/O-Operationen besteht. Wenn er hauptsächlich aus kleinen, zufälligen I/O-Operationen besteht, wird die Leistung durch diese Einstellung tatsächlich verschlechtert. Im Allgemeinen gilt: Wenn Ihr Workload hauptsächlich aus kleinen oder zufälligen I/O-Operationen besteht, empfiehlt es sich, eher ein Allzweck-SSD-Volume (gp2 und gp3) als ein st1- oder sc1-Volume zu verwenden.

Verwenden eines modernen Linux-Kernels (nur Linux-Instances)

Verwenden Sie einen modernen Linux-Kernel, der indirekte Beschreibungen akzeptiert. Diese Unterstützung ist in Linux-Kernel 3.8 und höher sowie in jeder EC2-Instance der aktuellen Generation verfügbar. Wenn Ihre durchschnittliche I/O-Größe 44 KiB oder fast 44 KiB beträgt, können Sie eine Instance oder einen Kernel verwenden, der indirekte Beschreibungen unterstützt. Informationen zum Ableiten der durchschnittlichen E/A-Größe aus Amazon CloudWatch-Metriken finden Sie unter Amazon-EBS-E/A-Merkmale und -Überwachung.

Um den maximalen Durchsatz auf st1- oder sc1-Volumes zu erzielen, empfehlen wir, für den Parameter xen_blkfront.max (für Linux-Kernel-Versionen unter 4.6) oder für den Parameter xen_blkfront.max_indirect_segments (für Linux-Kernel-Version 4.6 und höher) den Wert 256 festzulegen. Sie können den richtigen Parameter in der BS-Start-Befehlszeile festlegen.

In einem Amazon Linux-AMI mit einem älteren Kernel können Sie ihn am Ende der Kernelzeile in der GRUB-Konfiguration unter hinzufüge /boot/grub/menu.lst:

kernel /boot/vmlinuz-4.4.5-15.26.amzn1.x86_64 root=LABEL=/ console=ttyS0 xen_blkfront.max=256

Bei einem neueren Kernel würde der Befehl ähnlich wie folgt aussehen:

kernel /boot/vmlinuz-4.9.20-11.31.amzn1.x86_64 root=LABEL=/ console=tty1 console=ttyS0 xen_blkfront.max_indirect_segments=256

Starten Sie Ihre Instance neu, damit diese Einstellung wirksam wird.

Weitere Informationen finden Sie unter Konfigurieren von GRUB für paravirtuelle AMIs. Für andere Linux-Distributionen, insbesondere die, die keinen GRUB-Bootloader verwenden, ist möglicherweise ein anderer Ansatz notwendig, um die Kernel-Parameter anzupassen.

Weitere Informationen zu den EBS-I/O-Merkmalen finden Sie in der re:Invent-Präsentation Amazon EBS: Designing for Performance zu diesem Thema.

Verwenden von RAID 0 zur maximalen Nutzung der Instance-Ressourcen

Einige Instance-Typen können mehr I/O-Durchsatz generieren, als von einem einzigen EBS-Volume verarbeitet werden kann. Sie können mehrere Volumes in einer RAID 0-Konfiguration miteinander verbinden, um die verfügbare Bandbreite für diese Instances zu verwenden. Weitere Informationen finden Sie unter Amazon EBS- und RAID-Konfiguration.

Nachverfolgen der Leistung mit Amazon CloudWatch

Amazon Web Services bietet Leistungsmetriken für Amazon EBS, die Sie mit Amazon analysieren und anzeigen können, CloudWatch sowie Statusprüfungen, mit denen Sie den Zustand Ihrer Volumes überwachen können. Weitere Informationen finden Sie unter Überwachen Ihrer Amazon-EBS-Volumes.