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.
EBSBenchmark-Volumen bei Amazon
Sie können die Leistung von EBS Amazon-Volumes testen, indem Sie I/O-Workloads simulieren. Der Prozess läuft folgendermaßen ab:
-
Starten Sie eine EBS -optimierte Instance.
-
Erstellen Sie neue EBS Volumes.
-
Hängen Sie die Volumes an Ihre für EBS -optimierte Instanz an.
-
Konfigurieren Sie das Blockgerät und spielen Sie es auf.
-
Installieren Sie ein Tool, um Benchmark-Tests für die I/O-Leistung durchzuführen.
-
Führen Sie Benchmark-Tests durch, um die I/O-Leistung Ihrer Volumes zu ermitteln.
-
Löschen Sie Ihre Volumes und beenden Sie Ihre Instance, damit keine weiteren Kosten anfallen.
Wichtig
Einige der Verfahren führen zur Zerstörung vorhandener Daten auf den EBS Volumes, die Sie bewerten. Die Benchmark-Verfahren sind für die Verwendung auf Volumes vorgesehen, die speziell zu Testzwecken erstellt wurden, und nicht für Produktions-Volumes.
Einrichten Ihrer Instance
Um eine optimale Leistung von EBS Volumes zu erzielen, empfehlen wir die Verwendung einer EBS -optimierten Instance. EBS-optimierte Instances bieten mit Instance einen dedizierten Durchsatz zwischen Amazon EC2 und AmazonEBS. EBS-optimierte Instances bieten eine dedizierte Bandbreite zwischen Amazon EC2 und AmazonEBS, wobei die Spezifikationen vom Instance-Typ abhängen.
Um eine EBS -optimierte Instance zu erstellen, wählen Sie Launch as a EBS -optimized Instance, wenn Sie die Instance über die EC2 Amazon-Konsole starten, oder geben Sie an, --ebs-optimized wenn Sie die Befehlszeile verwenden. Stellen Sie sicher, dass Sie einen Instance-Typ auswählen, der diese Option unterstützt.
Richten Sie bereitgestellte Volumes IOPS SSD oder Volumes für allgemeine Zwecke SSD ein
Um bereitgestellte IOPS SSD (io1
undio2
) oder allgemeine SSD (gp2
undgp3
) Volumes mit der EC2 Amazon-Konsole zu erstellen, wählen Sie als Volume-Typ Bereitgestellt IOPS SSD (io1), Bereitgestellt IOPS SSD (io2), Allgemein (gp2) oder Allgemein SSD (gp3). SSD Geben Sie in der Befehlszeile io1
, io2
, gp2
oder gp3
für den --volume-type-Parameter an. Geben Sie für io1
io2
, und gp3
Volumes die Anzahl der I/O-Operationen pro Sekunde () für den Parameter an. IOPS --iops Weitere Informationen erhalten Sie unter EBSAmazon-Volumetypen und Erstellen Sie ein EBS Amazon-Volume.
(Nur Linux-Instances) Für die Beispieltests empfehlen wir, ein RAID 0-Array mit 6 Volumes zu erstellen, das ein hohes Maß an Leistung bietet. Da Sie nach den bereitgestellten Gigabyte (und der Anzahl der bereitgestellten Volumes IOPS für io1-, io2- und gp3-Volumes) und nicht nach der Anzahl der Volumes berechnet werden, fallen keine zusätzlichen Kosten für die Erstellung mehrerer kleinerer Volumes und deren Verwendung zur Erstellung eines Stripe-Sets an. Wenn Sie Oracle Orion zum Benchmarking Ihrer Volumes verwenden, kann das Striping auf die gleiche Weise simuliert werden wie Oracle. Wir empfehlen daher, Orion ASM das Striping durchführen zu lassen. Wenn Sie ein anderes Benchmarking-Tool verwenden, müssen Sie die Volumes selbst mithilfe von Stripes verbinden.
Weitere Hinweise zum Erstellen eines RAID 0-Arrays finden Sie unter. Erstellen Sie ein RAID 0-Array
Richten Sie durchsatzoptimierte HDD (st1
) oder kalte HDD (sc1
) Volumes ein
Um ein st1
Volume zu erstellen, wählen Sie Throughput Optimized, HDD wenn Sie das Volume mit der EC2 Amazon-Konsole erstellen, oder geben Sie an, --type st1
wenn Sie die Befehlszeile verwenden. Um ein sc1
Volume zu erstellen, wählen Sie Cold, HDD wenn Sie das Volume mit der EC2 Amazon-Konsole erstellen, oder geben Sie an, --type sc1
wenn Sie die Befehlszeile verwenden. Informationen zum Erstellen von EBS Volumes finden Sie unterErstellen Sie ein EBS Amazon-Volume. Informationen zum Anfügen dieser Volumes zu Ihrer Instance finden Sie unter Hängen Sie ein EBS Amazon-Volume an eine EC2 Amazon-Instance an.
(nur Linux-Instanzen) AWS bietet eine JSON Vorlage zur Verwendung AWS CloudFormation , die diesen Einrichtungsvorgang vereinfacht. Greifen Sie auf die Vorlagest1
Volumes einzurichten. Die Vorlage erstellt eine Instance der aktuellen Generation und ein 2 TiB st1
-Volume und fügt das Volume an die Instance unter /dev/xvdf
an.
(Nur Linux-Instances) Um ein HDD Volume mithilfe der Vorlage zu erstellen
Öffnen Sie die AWS CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation
. -
Wählen Sie Stapel erstellen aus.
-
Wählen Sie Vorlage auf Amazon S3 hochladen und wählen Sie die JSON Vorlage aus, die Sie zuvor erhalten haben.
-
Geben Sie Ihrem Stack einen Namen wie „ebs-perf-testing“ und wählen Sie einen Instance-Typ (der Standard ist r3.8xlarge) und einen Schlüssel aus. SSH
-
Wählen Sie zweimal Next und anschließend Create Stack aus.
-
Nachdem der Status für Ihren neuen Stack von CREATE_IN_ PROGRESS auf geändert wurde COMPLETE, wählen Sie Outputs, um den öffentlichen DNS Eintrag für Ihre neue Instance abzurufen, an die ein
st1
2-TiB-Volume angehängt wird. -
Connect SSH zu Ihrem neuen Stack als Benutzer her
ec2-user
, wobei der Hostname aus dem DNS Eintrag im vorherigen Schritt erhalten wurde. -
Fahren Sie mit Installieren von Benchmark-Tools fort.
Installieren von Benchmark-Tools
In der folgenden Tabelle sind einige der möglichen Tools aufgeführt, mit denen Sie die Leistung von EBS Volumes bewerten können.
Tool | Beschreibung |
---|---|
fio |
Hiermit kann die I/O-Leistung mithilfe von Benchmark-Tests ermittelt werden. (Beachten Sie, dass für fio eine Abhängigkeit von Führen Sie zum Installieren des fio auf Amazon Linux den folgenden Befehl aus:
Verwenden Sie den folgenden Befehl, um fio unter Ubuntu zu installieren:
|
Hiermit kann die I/O-Leistung der Speichersysteme kalibriert werden, die für Oracle-Datenbanken verwendet werden sollen. |
Tool | Beschreibung |
---|---|
DiskSpd |
DiskSpd ist ein Speicherleistungstool der Entwicklungsteams für Windows-, Windows Server- und Cloud Server-Infrastruktur bei Microsoft. Es steht unter https://github.com/Microsoft/diskspd/releases Nachdem Sie die ausführbare Datei Kopieren Sie die gewünschte ausführbare Datei Der Quellcode für DiskSpd wird GitHub unter folgender Adresse gehostet: https://github.com/Microsoft/diskspd |
CrystalDiskMark |
CrystalDiskMark ist eine einfache Festplatten-Benchmark-Software. Sie steht unter https://crystalmark zum Download zur Verfügung. info/en/software/crystaldiskmark |
Diese Benchmarking-Tools unterstützen zahlreiche Testparameter. Sie sollten nur Befehle verwenden, die die von Ihren Volumes unterstützten Workloads durch Annäherung bestimmen. Diese Befehle sind unten aufgeführt und dienen als Beispiele, um Ihnen den Einstieg zu erleichtern.
Auswählen der Volume-Warteschlangenlänge
Wählen Sie die beste Länge der Volume-Warteschlange basierend auf Ihrem Workload und Volume-Typ aus.
Länge der Warteschlange auf Volumes SSD mit -Unterstützung
Um die optimale Warteschlangenlänge für Ihre Arbeitslast auf SSD unterstützten Volumes zu ermitteln, empfehlen wir, eine Warteschlangenlänge von 1 pro 1000 IOPS verfügbaren Volumes anzustreben (Basiswert für SSD Allzweck-Volumes und bereitgestellte Menge für IOPS SSD bereitgestellte Volumes). Sie können dann die Leistung Ihrer Anwendung beobachten und diesen Wert basierend auf den Anwendungsanforderungen optimieren.
Eine Erhöhung der Warteschlangenlänge ist von Vorteil, bis Sie den Wert für die bereitgestellte WarteschlangenlängeIOPS, den Durchsatz oder die optimale Systemwarteschlangenlänge erreicht haben, der derzeit auf 32 festgelegt ist. Beispielsweise IOPS sollte für ein Volume mit 3.000 bereitgestellten Volumes eine Warteschlangenlänge von 3 angestrebt werden. Sie sollten mit diesen Werten experimentieren und sie nach oben oder unten anpassen, um den für Ihre Anwendung optimalen Wert zu finden.
Warteschlangenlänge auf Volumes mit HDD -Unterstützung
Um die optimale Warteschlangenlänge für Ihre Arbeitslast auf Volumes mit HDD gesicherten Daten zu ermitteln, empfehlen wir Ihnen, eine Warteschlangenlänge von mindestens 4 anzustreben und gleichzeitig sequentielle I/Os mit 1 MiB durchzuführen. Sie können dann die Leistung Ihrer Anwendung beobachten und diesen Wert basierend auf den Anwendungsanforderungen optimieren. Zum Beispiel ein st1
2-TiB-Volumen mit einem Burst-Durchsatz von MiB/s and IOPS of 500 should target a queue length of 4, 8, or 16 while performing 1,024
KiB, 512 KiB, or 256 KiB sequential I/Os jeweils 500. Sie sollten mit diesen Werten experimentieren und sie nach oben oder unten anpassen, um den für Ihre Anwendung optimalen Wert zu finden.
Deaktivieren von C-Zuständen
Bevor Sie ein Benchmarking durchführen, sollten Sie die Prozessor-C-Status deaktivieren. Vorübergehend inaktive Kerne in einem unterstützten Zustand CPU können in den C-Zustand übergehen, um Strom zu sparen. Wenn der Kern aufgerufen wird, vergeht eine gewisse Zeit, bis der Kern wieder voll funktionsfähig ist. Diese Latenzzeit kann die Prozessor-Benchmarking-Routinen stören. Weitere Informationen zu C-States und zu den EC2 Instance-Typen, die diese unterstützen, finden Sie unter Prozessor-State-Steuerung für Ihre EC2 Instance.
Sie können C-States auf Amazon Linux und CentOS wie folgt deaktivieren: RHEL
Ermitteln Sie die Anzahl der C-Zustände.
$
cpupower idle-info | grep "Number of idle states:"
Deaktivieren Sie die C-Zustände von c1 bis cN. Im Idealfall sollten sich die Kerne im Zustand c0 befinden.
$
for i in `seq 1 $((N-1))`; do cpupower idle-set -d $i; done
Sie können den C-Status unter Windows wie folgt deaktivieren:
-
Rufen Sie PowerShell das aktuelle aktive Energieschema ab.
$current_scheme = powercfg /getactivescheme
-
Holen Sie sich das EnergieschemaGUID.
(Get-WmiObject -class Win32_PowerPlan -Namespace "root\cimv2\power" -Filter "ElementName='High performance'").InstanceID
-
Holen Sie sich die LeistungseinstellungGUID.
(Get-WmiObject -class Win32_PowerSetting -Namespace "root\cimv2\power" -Filter "ElementName='Processor idle disable'").InstanceID
-
Rufen Sie die Untergruppe der Leistungseinstellungen abGUID.
(Get-WmiObject -class Win32_PowerSettingSubgroup -Namespace "root\cimv2\power" -Filter "ElementName='Processor power management'").InstanceID
-
Deaktivieren Sie die C-Zustände, indem Sie den Wert des Index auf 1 setzen. Ein Wert von 0 bedeutet, dass die C-Zustände deaktiviert sind.
powercfg /setacvalueindex
<power_scheme_guid>
<power_setting_subgroup_guid>
<power_setting_guid>
1 -
Stellen Sie das aktive Schema ein, um sicherzustellen, dass die Einstellungen gespeichert werden.
powercfg /setactive
<power_scheme_guid>
Durchführen von Benchmark-Tests
In den folgenden Verfahren werden Benchmarking-Befehle für verschiedene EBS Volumetypen beschrieben.
Führen Sie die folgenden Befehle auf einer für EBS -optimierten Instanz mit angehängten EBS Volumes aus. Wenn die EBS Volumes aus Snapshots erstellt wurden, sollten Sie sie vor dem Benchmarking unbedingt initialisieren. Weitere Informationen finden Sie unter EBSAmazon-Volumes initialisieren.
Tipp
Sie können die I/O-Latenz-Histogramme aus den EBS detaillierten Leistungsstatistiken verwenden, um die Verteilung der I/O-Leistung in Ihren Benchmark-Tests zu vergleichen. Weitere Informationen finden Sie unter EBSDetaillierte Leistungsstatistiken von Amazon.
Wenn Sie mit dem Testen Ihrer Volumes fertig sind, finden Sie in den folgenden Themen Hilfe beim Aufräumen Löschen Sie ein EBS Amazon-Volume und Beenden Ihrer Instance.
Vergleichen Sie bereitgestellte Volumes IOPS SSD und Volumes für allgemeine Zwecke SSD
Führen Sie das fio Programm auf dem RAID 0-Array aus, das Sie erstellt haben.
Mit dem folgenden Befehl werden zufällige 16 KB-Schreiboperationen ausgeführt.
$
sudo fio--directory=/mnt/
p_iops_vol0
--ioengine=psync--name
fio_test_file
--direct=1 --rw=randwrite --bs=16k --size=1G --numjobs=16 --time_based --runtime=180 --group_reporting --norandommap
Mit dem folgenden Befehl werden zufällige 16 KB-Leseoperationen ausgeführt.
$
sudo fio--directory=/mnt/
p_iops_vol0
--name
fio_test_file
--direct=1 --rw=randread --bs=16k --size=1G --numjobs=16 --time_based --runtime=180 --group_reporting --norandommap
Weitere Informationen zum Interpretieren der Ergebnisse finden Sie in diesem Tutorial: Inspecting disk IO performance with fio (Untersuchen der Festplatten-I/O-Leistung mit "fio")
Führen Sie DiskSpd für das Volume aus, das Sie erstellt haben.
Der folgende Befehl führt einen 30-sekündigen zufälligen I/O-Test mit einer 20-GB-Testdatei auf dem Laufwerk C:
mit einem Anteil von 25 % Schreib- und 75 % Lesevorgängen und einer 8K-Blockgröße aus. Es verwendet acht Worker-Threads mit jeweils vier ausstehenden I/Os und einen Schreib-Entropiestartwert von 1 GB. Die Ergebnisse des Tests werden in einer Textdatei mit dem Namen DiskSpeedResults.txt
gespeichert. Diese Parameter simulieren eine SQL OLTP Serverauslastung.
diskspd -b8K -d30 -o4 -t8 -h -r -w25 -L -Z1G -c20G C:\iotest.dat > DiskSpeedResults.txt
Weitere Informationen zur Interpretation der Ergebnisse finden Sie in diesem Tutorial: Überprüfen der Festplatten-IO-Leistung mit D. iskSPd
Benchmark st1
und sc1
Volumes (Linux-Instanzen)
Führen Sie fio auf Ihrem st1
oder sc1
Volume aus.
Anmerkung
Legen Sie vor dem Durchführen dieser Tests die gepufferte I/O auf Ihrer Instance fest, so wie in Erhöhen Sie den Read-Ahead-Wert für Workloads mit hohem Durchsatz und mit hohem Lesevorgang auf und (nur Linux-Instances) st1 sc1 beschrieben.
Mit dem folgenden Befehl werden sequenzielle 1 MiB-Leseoperationen auf einem angeschlossenen st1
-Blockgerät durchgeführt (z. B. /dev/xvdf
):
$
sudo fio--filename=/dev/
<device>
--direct=1 --rw=read
--randrepeat=0 --ioengine=libaio --bs=1024k --iodepth=8 --time_based=1 --runtime=180
--name=fio_direct_read_test
Mit dem folgenden Befehl werden sequenzielle 1 MiB-Schreiboperationen auf einem angeschlossenen st1
-Blockgerät durchgeführt:
$
sudo fio--filename=/dev/
<device>
--direct=1 --rw=write
--randrepeat=0 --ioengine=libaio --bs=1024k --iodepth=8 --time_based=1 --runtime=180
--name=fio_direct_write_test
Bei einigen Workloads wird eine Mischung aus sequenziellen Lese- und Schreiboperationen auf verschiedenen Teilen des Blockgeräts ausgeführt. Um für einen solchen Workload einen Benchmark-Test durchzuführen, wird empfohlen, separate, gleichzeitige fio-Jobs für Lese- und Schreiboperationen zu verwenden. Zudem sollten Sie die Option fio offset_increment
verwenden, um für jeden Job andere Blockgerät-Speicherorte zu nutzen.
Das Ausführen dieses Workloads ist etwas komplizierter als bei einem Workload mit sequenziellen Schreib- oder sequentiellen Leseoperationen. Verwenden Sie einen Texteditor, um eine fio-Jobdatei (in diesem Beispiel fio_rw_mix.cfg
) zu erstellen, die Folgendes enthält:
[global] clocksource=clock_gettime randrepeat=0 runtime=180 [sequential-write] bs=1M ioengine=libaio direct=1 iodepth=8 filename=/dev/
<device>
do_verify=0 rw=write rwmixread=0 rwmixwrite=100 [sequential-read] bs=1M ioengine=libaio direct=1 iodepth=8 filename=/dev/<device>
do_verify=0 rw=read rwmixread=100 rwmixwrite=0 offset=100g
Führen Sie anschließend den folgenden Befehl aus:
$
sudo fiofio_rw_mix.cfg
Weitere Informationen zum Interpretieren der Ergebnisse finden Sie in diesem Tutorial: Inspecting disk IO performance with fio (Untersuchen der Festplatten-I/O-Leistung mit "fio")
Mehrere fio-Jobs für die direkte I/O, auch wenn sequenzielle Lese- oder Schreiboperationen verwendet werden, können dazu führen, dass der Durchsatz für st1
- und sc1
-Volumes niedriger als erwartet ist. Wir empfehlen Ihnen, einen direkten I/O-Job zu verwenden und mit dem Parameter iodepth
die Anzahl der gleichzeitigen I/O-Operationen zu steuern.