

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.

# Amazon EBS-Volumen vergleichen
<a name="benchmark_procedures"></a>

Sie können die Leistung von Amazon EBS-Volumes testen, indem Sie Workloads simulieren I/O . Der Prozess läuft folgendermaßen ab:

1. Starten Sie eine EBS-optimierte Instance.

1. Erstellen Sie neue EBS-Volumes.

1. Fügen Sie die Volumes an Ihre EBS-optimierte Instance an.

1. Konfigurieren Sie das Blockgerät und spielen Sie es auf.

1. Installieren Sie ein Tool, um die Leistung zu bewerten. I/O 

1. Messen Sie die I/O Leistung Ihrer Volumes.

1. 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
<a name="set_up_instance"></a>

Um die optimale Leistung für EBS-Volumes zu erzielen, empfehlen wir, eine EBS-optimierte Instance zu verwenden. EBS-optimierte Instances bieten eine dedizierte Bandbreite zwischen Amazon EC2 und Amazon EBS mit Spezifikationen je nach verwendetem Instance-Typ.

Um eine EBS-optimierte Instance zu erstellen, wählen Sie **Als EBS-optimierte Instance starten, wenn Sie die Instance** über die Amazon EC2 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
<a name="setupPIOPS"></a>

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 `io1``io2`, 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](ebs-volume-types.md) und [Erstellen Sie ein Amazon EBS-Volume](ebs-creating-volume.md).

(*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. 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 unter[Erstellen Sie ein RAID 0-Array](raid-config.md#create-raid-array).

### Einrichten von durchsatzoptimierten HDD- (`st1`) oder Cold-HDD-Volumes (`sc1`)
<a name="set_up_hdd"></a>

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](ebs-creating-volume.md). Informationen zum Anfügen dieser Volumes zu Ihrer Instance finden Sie unter [Hängen Sie ein Amazon EBS-Volume an eine Amazon EC2 EC2-Instance an](ebs-attaching-volume.md).

(*nur Linux-Instanzen*) AWS bietet eine JSON-Vorlage zur Verwendung CloudFormation , die diesen Einrichtungsvorgang vereinfacht. Greifen Sie auf die [Vorlage](https://s3.amazonaws.com/cloudformation-examples/community/st1_cloudformation_template.json) zu und speichern Sie sie als JSON-Datei. CloudFormation ermöglicht es Ihnen, Ihre eigenen SSH-Schlüssel zu konfigurieren, und bietet eine einfachere Möglichkeit, eine Leistungstestumgebung zur Auswertung von `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-Instances*) So erstellen Sie ein HDD-Volume mithilfe der Vorlage**

1. Öffnen Sie die CloudFormation Konsole unter [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Wählen Sie **Create Stack** aus.

1. Klicken Sie auf **Upload a Template to Amazon S3** und wählen Sie die JSON-Vorlage aus, die Sie zuvor erhalten haben.

1. Geben Sie Ihrem Stack einen Namen wie „ebs-perf-testing“ und wählen Sie einen Instanztyp (der Standard ist r3.8xlarge) und einen SSH-Schlüssel aus.

1. Wählen Sie zweimal **Next** und anschließend **Create Stack** aus.

1. Nachdem sich der Status für Ihren neuen Stack von **CREATE\$1IN\$1PROGRESS** 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.

1. Stellen Sie mithilfe von SSH eine Verbindung zum neuen Stack als Benutzer **ec2-user** her. Verwenden Sie hierbei den Hostnamen aus dem DNS-Eintrag, den Sie im vorherigen Schritt abgerufen haben. 

1. Fahren Sie mit [Installieren von Benchmark-Tools](#install_tools) fort.

## Installieren von Benchmark-Tools
<a name="install_tools"></a>

In der folgenden Tabelle sind einige der möglichen Tools aufgeführt, mit denen Sie die Leistung von EBS-Volumes bewerten können.

### Linux-Instances
<a name="install_tools-linux"></a>


| Tool | Beschreibung | 
| --- | --- | 
|  fio  |  Zum Benchmarking I/O der Leistung. (Beachten Sie, dass für **fio** eine Abhängigkeit von `libaio-devel` besteht.) Führen Sie zum Installieren des **fio** auf Amazon Linux den folgenden Befehl aus: <pre>$ sudo yum install -y fio</pre> Verwenden Sie den folgenden Befehl, um **fio** unter Ubuntu zu installieren: <pre>sudo apt-get install -y fio</pre>  | 
|  [Oracle Orion Calibration Tool](https://docs.oracle.com/cd/E18283_01/server.112/e16638/iodesign.htm#BABFCFBC)  |  Zur Kalibrierung der I/O Leistung von Speichersystemen, die mit Oracle-Datenbanken verwendet werden sollen.  | 

### Windows-Instances
<a name="install_tools-windows"></a>


| Tool | Description | 
| --- | --- | 
| [DiskSpd](https://github.com/microsoft/diskspd/releases) | 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](https://github.com/Microsoft/diskspd/releases) zum Download zur Verfügung. Nachdem Sie die ausführbare Datei `diskspd.exe` heruntergeladen haben, öffnen Sie eine Eingabeaufforderung mit Administratorrechten (indem Sie „Als Administrator ausführen“ auswählen) und navigieren Sie dann zu dem Verzeichnis, in das Sie die Datei `diskspd.exe` kopiert haben.  Kopieren Sie die gewünschte ausführbare Datei `diskspd.exe` aus dem entsprechenden ausführbaren Ordner (`amd64fre`, `armfre` oder `x86fre)`) in einen kurzen, einfachen Pfad wie `C:\DiskSpd`. In den meisten Fällen benötigen Sie die 64-Bit-Version von DiskSpd aus dem Ordner. `amd64fre`  Der Quellcode für DiskSpd wird GitHub unter folgender Adresse gehostet: [https://github.com/Microsoft/diskspd](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](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
<a name="UnderstandingQueueLength"></a>

Wählen Sie die beste Länge der Volume-Warteschlange basierend auf Ihrem Workload und Volume-Typ aus.

### Warteschlangenlänge basierend auf SSD-gestützten Volumes
<a name="SSD_queue"></a>

Um die optimale Warteschlangenlänge für Ihren Workload auf SSD-gestützten Volumes zu ermitteln, empfehlen wir pro 1000 verfügbaren IOPS eine Warteschlangenlänge von 1 (basierend auf Allzweck-SSD-Volumes und der bereitgestellten 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 basierend auf HDD-gestützten Volumes
<a name="HDD_queue"></a>

Um die optimale Warteschlangenlänge für Ihren Workload auf HDD-gestützten Volumes zu ermitteln, sollten Sie beim Ausführen von sequenziellen 1 MiB-I/O-Operationen eine Warteschlangenlänge von mindestens 4 verwenden. 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 einem IOPS-Wert von 500 eine Warteschlangenlänge von 4, 8 oder 16 anvisieren und gleichzeitig 1.024 KiB, 512 KiB oder 256 KiB sequentiell verarbeiten. 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 von C-Zuständen
<a name="cstates"></a>

Bevor Sie ein Benchmarking durchführen, sollten Sie die Prozessor-C-Status deaktivieren. Vorübergehend ungenutzte Kerne in einer unterstützten CPU können in einen C-Zustand wechseln, 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 über C-Zustände und welche EC2-Instance-Typen sie unterstützen, finden Sie unter [Steuerung des Prozessorzustands für Ihre EC2-Instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/processor_state_control.html).

### Linux-Instances
<a name="cstates-linux"></a>

Sie können den C-Status unter Amazon Linux, RHEL und CentOS wie folgt deaktivieren:

1. Ermitteln Sie die Anzahl der C-Zustände.

   ```
   $ cpupower idle-info | grep "Number of idle states:"
   ```

1. 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
   ```

### Windows-Instances
<a name="cstates-windows"></a>

Sie können den C-Status unter Windows wie folgt deaktivieren:

1. Rufen Sie PowerShell das aktuelle Schema der aktiven Stromversorgung ab.

   ```
   $current_scheme = powercfg /getactivescheme
   ```

1. Holen Sie sich die GUID für das Energiesparschema.

   ```
   (Get-WmiObject -class Win32_PowerPlan -Namespace "root\cimv2\power" -Filter "ElementName='High performance'").InstanceID          
   ```

1. Holen Sie sich die GUID für die Energieeinstellungen.

   ```
   (Get-WmiObject -class Win32_PowerSetting -Namespace "root\cimv2\power" -Filter "ElementName='Processor idle disable'").InstanceID                  
   ```

1. 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
   ```

1. 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
   ```

1. Stellen Sie das aktive Schema ein, um sicherzustellen, dass die Einstellungen gespeichert werden.

   ```
   powercfg /setactive <power_scheme_guid>
   ```

## Durchführen von Benchmark-Tests
<a name="perform_benchmarking"></a>

In den folgenden Verfahren werden die Benchmarking-Befehle für verschiedene EBS-Volume-Typen beschrieben. 

Führen Sie die folgenden Befehle auf einer EBS-optimierten Instance mit angefügten 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](initalize-volume.md#ebs-initialize).

**Tipp**  
Sie können die I/O Latenzhistogramme der detaillierten EBS-Leistungsstatistiken verwenden, um die Leistungsverteilung in Ihren I/O Benchmark-Tests zu vergleichen. Weitere Informationen finden Sie unter [Detaillierte Leistungsstatistiken von Amazon EBS](nvme-detailed-performance-stats.md).

[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](ebs-deleting-volume.md) und Beenden Ihrer Instance.](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html)

### Durchführen von Benchmark-Tests der Bereitgestellte IOPS-SSD- und Allzweck-SSD-Volumes
<a name="piops_benchmarking"></a>

#### Linux-Instances
<a name="piops_benchmarking-linux"></a>

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 --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")](https://www.linux.com/training-tutorials/inspecting-disk-io-performance-fio/).

#### Windows-Instances
<a name="piops_benchmarking-windows"></a>

Führen Sie **DiskSpd** für das Volume aus, das Sie erstellt haben.

Mit dem folgenden Befehl wird ein 30-sekündiger I/O Zufallstest mit einer 20-GB-Testdatei auf dem `C:` Laufwerk mit einer Schreib- und einer Leserate von 25% und einer Leserate von 75% sowie einer Blockgröße von 8 KB ausgeführt. 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 Server-OLTP-Workload.

```
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 Disk](https://sqlperformance.com/2015/08/io-subsystem/diskspd-test-storage). SPd

### Benchmark `st1` und `sc1` Volumes (Linux-Instanzen)
<a name="hdd_benchmarking"></a>

Führen Sie **fio** auf Ihrem `st1` oder `sc1` Volume aus.

**Anmerkung**  
Bevor Sie diese Tests ausführen, legen Sie für Ihre Instance I/O den Wert buffered fest, wie unter beschrieben[*Erhöhen Sie den Read-Ahead-Wert für Workloads mit hohem Durchsatz und mit hohem Lesevorgang auf und (nur Linux-Instances) `st1` `sc1`*](ebs-performance.md#read_ahead). 

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 fio fio_rw_mix.cfg
```

Weitere Informationen zur Interpretation der Ergebnisse finden Sie in diesem Tutorial: [ I/O Festplattenleistung mit fio](https://www.linux.com/training-tutorials/inspecting-disk-io-performance-fio/) überprüfen.

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, dass Sie einen direkten I/O Job verwenden und den `iodepth` Parameter verwenden, um die Anzahl der gleichzeitigen I/O Operationen zu steuern.