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.
Benchmarken Sie Amazon EBS-Volumes
Sie können die Leistung von Amazon EBS-Volumes testen, indem Sie Workloads simulieren I/O . Der Prozess läuft folgendermaßen ab:
-
Starten Sie eine Instance. EBS-optimized
-
Erstellen Sie neue EBS-Volumes.
-
Hängen Sie die Volumes an Ihre EBS-optimized Instance an.
-
Konfigurieren Sie das Blockgerät und spielen Sie es auf.
-
Installieren Sie ein Tool zum I/O Leistungsvergleich.
-
Vergleichen Sie die I/O Leistung Ihrer Volumes.
-
Löschen Sie Ihre Volumes und beenden Sie Ihre Instance, damit keine weiteren Kosten anfallen.
Wichtig
Einige der in diesem Thema beschriebenen Verfahren führen dazu, dass auf den EBS-Volumes, für die Sie Benchmark-Tests durchführen, vorhandene Daten gelöscht werden. 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 die optimale Leistung von EBS-Volumes zu erzielen, empfehlen wir Ihnen, eine EBS-optimized Instance zu verwenden. EBS-optimized Instances bieten eine dedizierte Bandbreite zwischen Amazon EC2 und Amazon EBS, wobei die Spezifikationen vom Instance-Typ abhängen.
Um eine EBS-optimized Instance zu erstellen, wählen Sie Launch as an EBS-optimized Instance, wenn Sie die Instance über die Amazon EC2-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.
Einrichten von Bereitgestellte IOPS-SSD- oder Allzweck-SSD-Volumes
Um Bereitgestellte IOPS-SSD- (io1 und io2) oder Allzweck-SSD-Volumes (gp2 und gp3) mithilfe der Amazon EC2-Konsole zu erstellen, wählen Sie als Volume-Typ Bereitgestellte IOPS-SSD (io1), Bereitgestellte IOPS-SSD (io2), Allzweck-SSD (gp2) oder Allzweck-SSD (gp3) aus. Geben Sie in der Befehlszeile io1, io2, gp2 oder gp3 für den --volume-type-Parameter an. Geben Sie für io1io2, und gp3 Volumes die Anzahl der I/O Operationen pro Sekunde (IOPS) für den --iops Parameter an. Weitere Informationen erhalten Sie unter Amazon EBS-Volume-Typen und Erstellen Sie ein Amazon EBS-Volume.
(Nur Linux-Instanzen) Für die Beispieltests empfehlen wir, ein RAID 0-Array mit 6 Volumes zu erstellen, das ein hohes Leistungsniveau bietet. Wie hoch Ihre Kosten sind, hängt von den bereitgestellten Gigabytes (und der Anzahl der bereitgestellten IOPS für io1-, io2-, und gp3-Volumes) und nicht von der Anzahl der Volumes ab. Daher entstehen Ihnen keine zusätzlichen Kosten, wenn Sie mehrere, kleinere Volumes erstellen und zum Erstellen eines Stripesets verwenden. Wenn Sie Oracle Orion verwenden, um Benchmark-Tests auf Volumes durchzuführen, kann damit das Striping auf dieselbe Weise simuliert werden wie mit Oracle ASM. Wir empfehlen Ihnen daher, Orion das Striping zu überlassen. Wenn Sie ein anderes Benchmarking-Tool verwenden, müssen Sie die Volumes selbst mithilfe von Stripes verbinden.
Weitere Informationen zum Erstellen eines RAID 0-Arrays finden Sie unterErstellen Sie ein RAID 0-Array.
Richten Sie die Volumes Throughput Optimized HDD (st1) oder Cold HDD (sc1) ein
Wählen Sie beim Erstellen eines st1-Volumes mit der Amazon EC2-Konsole durchsatzoptimierte HDD aus oder geben Sie --type st1 an, wenn Sie die Befehlszeile verwenden. Wählen Sie beim Erstellen eines sc1-Volumes mit der Amazon-EC2-Konsole „Cold-HDD“ aus oder geben Sie --type sc1 an, wenn Sie die Befehlszeile verwenden. Informationen zum Erstellen von EBS-Volumes finden Sie unter Erstellen Sie ein Amazon EBS-Volume. Informationen zum Anfügen dieser Volumes zu Ihrer Instance finden Sie unter Hängen Sie ein Amazon EBS-Volume an eine Amazon EC2-Instance an.
(nur für Linux-Instances) AWS stellt eine JSON-Vorlage zur Verfügung CloudFormation , mit der dieser Einrichtungsvorgang vereinfacht wird. Greifen Sie auf die Vorlage zu st1 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-Instanzen) Um ein HDD-Volume mithilfe der Vorlage zu erstellen
Öffnen Sie die CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation
. -
Wählen Sie Create Stack aus.
-
Klicken Sie auf Upload a Template to Amazon S3 und wählen Sie die JSON-Vorlage aus, die Sie zuvor erhalten haben.
-
Geben Sie Ihrem Stack einen Namen, etwa "ebs-perf-testing", und wählen Sie einen Instance-Typ (der Standardwert ist "r3.8xlarge") und SSH-Schlüssel aus.
-
Wählen Sie zweimal Next und anschließend Create Stack aus.
-
Nachdem sich der Status für Ihren neuen Stack von CREATE_IN_PROGRESS zu COMPLETE geändert hat, wählen Sie Outputs (Ausgaben) aus, um den öffentlichen DNS-Eintrag für Ihre neue Instance abzurufen, an die ein 2 TiB-
st1-Volume angefügt wird. -
Stellen Sie mithilfe von SSH eine Verbindung zum neuen Stack als Benutzer
ec2-userher. Verwenden Sie hierbei den Hostnamen aus dem DNS-Eintrag, den Sie im vorherigen Schritt abgerufen haben. -
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 vergleichen können.
| Tool | Beschreibung |
|---|---|
|
fio |
Zum Benchmarking I/O der Leistung. (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:
|
|
Zur Kalibrierung der I/O Leistung von Speichersystemen, die mit Oracle-Datenbanken verwendet werden sollen. |
| Tool | Description |
|---|---|
| DiskSpd |
DiskSpd ist ein Tool zur Speicherleistung, das von den Entwicklungsteams für Windows, Windows Server und Cloud Server Infrastructure von Microsoft entwickelt wurde. Es steht unter zum Download bereit 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 gehostet: https://github.com/Microsoft/diskspd |
|
CrystalDiskMark |
CrystalDiskMark ist eine einfache Festplatten-Benchmark-Software. Sie steht unter zum Download bereit https://crystalmark.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 SSD-backed Volumes
Um die optimale Warteschlangenlänge für Ihre Arbeitslast auf SSD-backed Volumes zu ermitteln, empfehlen wir, eine Warteschlangenlänge von 1 pro 1000 verfügbaren IOPS anzustreben (Basiswert für SSD-Volumes für allgemeine Zwecke und bereitgestellte Menge für bereitgestellte IOPS-SSD-Volumes). Sie können dann die Leistung Ihrer Anwendung beobachten und diesen Wert basierend auf den Anwendungsanforderungen optimieren.
Das Verlängern der Warteschlange ist nützlich, bis Sie die bereitgestellten IOPS, den bereitgestellten Durchsatz oder den optimalen Wert für die Systemwarteschlangenlänge erreicht haben, der derzeit auf 32 festgelegt ist. Für ein Volume mit 3 000 bereitgestellten IOPS empfiehlt sich beispielsweise eine Warteschlangenlänge von 3. 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 HDD-backed
Um die optimale Warteschlangenlänge für Ihre Arbeitslast auf HDD-backed Volumes zu ermitteln, empfehlen wir Ihnen, eine Warteschlangenlänge von mindestens 4 anzustreben und gleichzeitig eine sequentielle Ausführung von 1 MiB durchzuführen. I/Os Sie können dann die Leistung Ihrer Anwendung beobachten und diesen Wert basierend auf den Anwendungsanforderungen optimieren. Beispielsweise sollte ein st1 2-TiB-Volume mit einem Burst-Durchsatz von 500 MiB/s und IOPS von 500 eine Warteschlangenlänge von 4, 8 oder 16 bei sequentieller Leistung von 1.024 KiB, 512 KiB oder 256 KiB anstreben. I/Os Sie sollten mit diesen Werten experimentieren und sie nach oben oder unten anpassen, um den für Ihre Anwendung optimalen Wert zu finden.
Deaktivieren C-states
Bevor Sie das Benchmarking ausführen, sollten Sie den Prozessor C-states deaktivieren. C-state Um Strom zu sparen, können Kerne in einer unterstützten CPU vorübergehend inaktiv sein. 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 dazu C-states und welche EC2-Instance-Typen sie unterstützen, finden Sie unter Prozessorstatussteuerung für Ihre EC2-Instance.
Sie können das Gerät C-states auf Amazon Linux, RHEL und CentOS wie folgt deaktivieren:
Ermitteln Sie die Anzahl von. C-states
$cpupower idle-info | grep "Number of idle states:"Deaktiviere den C-states Wert 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 es C-states unter Windows wie folgt deaktivieren:
-
Rufen Sie PowerShell unter das aktuelle aktive Energieschema ab.
$current_scheme = powercfg /getactivescheme -
Holen Sie sich die GUID für das Energiesparschema.
(Get-WmiObject -class Win32_PowerPlan -Namespace "root\cimv2\power" -Filter "ElementName='High performance'").InstanceID -
Holen Sie sich die GUID für die Energieeinstellungen.
(Get-WmiObject -class Win32_PowerSetting -Namespace "root\cimv2\power" -Filter "ElementName='Processor idle disable'").InstanceID -
Holen Sie sich die GUID für die Energieeinstellungen-Untergruppe.
(Get-WmiObject -class Win32_PowerSettingSubgroup -Namespace "root\cimv2\power" -Filter "ElementName='Processor power management'").InstanceID -
Deaktivieren Sie, C-states indem Sie den Wert des Indexes auf 1 setzen. Ein Wert von 0 gibt an, dass C-states sie 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 die Benchmarking-Befehle für verschiedene EBS-Volume-Typen beschrieben.
Führen Sie die folgenden Befehle auf einer EBS-optimized Instance mit angehängten EBS-Volumes aus. Wenn die EBS-Volumes aus Snapshots erstellt wurden, sollten Sie sie vor dem Benchmark-Test initialisieren. Weitere Informationen finden Sie unter Initialisieren Sie die Volumes nach der Erstellung manuell.
Tipp
Sie können die I/O Latenzhistogramme verwenden, die in den detaillierten Leistungsstatistiken von EBS bereitgestellt werden, um die Leistungsverteilung in Ihren Benchmark-Tests I/O zu vergleichen. Weitere Informationen finden Sie unter Detaillierte Leistungsstatistiken von Amazon EBS.
Wenn Sie mit dem Testen Ihrer Volumes fertig sind, finden Sie in den folgenden Themen Hilfe beim Aufräumen: Löschen eines Amazon EBS-Volumes und Beenden Sie Ihre Instance.
Durchführen von Benchmark-Tests der Bereitgestellte IOPS-SSD- und Allzweck-SSD-Volumes
Führen Sie fio das 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--namefio_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--namefio_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.
Mit dem folgenden Befehl wird ein I/O 30-Sekunden-Zufallstest unter Verwendung einer 20-GB-Testdatei auf dem C: Laufwerk mit einer Schreibrate von 25% und einer Leserate von 75% sowie einer Blockgröße von 8 K ausgeführt. Er verwendet acht Worker-Threads mit jeweils vier ausstehenden I/Os Threads und einem Startwert für die Schreibentropie von 1 GB. Die Ergebnisse des Tests werden in einer Textdatei mit dem Namen DiskSpeedResults.txt gespeichert. Diese Parameter simulieren eine SQL Server-OLTP-Workload.
diskspd -b8K -d30 -o4 -t8 -h -r -w25 -L -Z1G -c20G C:\iotest.dat > DiskSpeedResults.txt
Weitere Informationen zum Interpretieren der Ergebnisse finden Sie in diesem Tutorial: Inspecting disk IO performance with DiskSPd
Benchmark-Volumes st1 und sc1 (Linux-Instanzen)
Führen Sie fio auf Ihrem st1 oder sc1 Volume aus.
Anmerkung
Bevor Sie diese Tests ausführen, stellen Sie den Puffermodus I/O auf Ihrer Instance ein, wie unter beschrieben. Erhöhen Sie den Read-Ahead-Wert für Workloads mit hohem Durchsatz und leseintensiven Workloads auf st1 und sc1 (Nur Linux-Instanzen)
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 zur Interpretation der Ergebnisse finden Sie in diesem Tutorial: Überprüfen der I/O Festplattenleistung mit fio.
Mehrere direkte fio Aufträge können I/O, obwohl sequentielle Lese- oder Schreibvorgänge verwendet werden, zu einem niedrigeren Durchsatz als erwartet für st1 und Volumes führen. sc1 Es wird empfohlen, einen direkten I/O Auftrag zu verwenden und den iodepth Parameter zu verwenden, um die Anzahl der gleichzeitigen I/O Operationen zu steuern.