

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.

# Optimieren Sie Ihre EC2-Instance im Hinblick auf die Leistung
<a name="ec2-instance-performance-tuning"></a>

**Anmerkung**  
Wenn Sie Ihre AWS-Ressourcen mithilfe von CloudFormation Vorlagen bereitgestellt haben, werden diese Optimierungen automatisch angewendet. Wenn Sie ein AMI verwendet oder Ihre EC2-Instance manuell erstellt haben, müssen diese Leistungsoptimierungen angewendet werden, um die zuverlässigste Leistung zu erzielen.

Denken Sie daran, Ihre Instance neu zu starten, nachdem Sie alle Optimierungen vorgenommen haben.

**Topics**
+ [Optimieren Sie Hardware-Interrupts und Empfangswarteschlangen — das wirkt sich auf CPU und Netzwerk aus](#tune-hardware-interrupts)
+ [Tune Rx Interrupt Coalescing — wirkt sich auf das Netzwerk aus](#tune-rx-interrupts)
+ [Tune Rx Ring Buffer — wirkt sich auf das Netzwerk aus](#tune-rx-ring-buffer)
+ [CPU C-State abstimmen — wirkt sich auf die CPU aus](#tune-cpu-c-state)
+ [Eingangsports reservieren — wirkt sich auf das Netzwerk aus](#reserve-ingress-ports)
+ [Starten Sie neu](#reboot)

## Optimieren Sie Hardware-Interrupts und Empfangswarteschlangen — das wirkt sich auf CPU und Netzwerk aus
<a name="tune-hardware-interrupts"></a>

In diesem Abschnitt wird die CPU-Kernnutzung von Systemd, SMP IRQs, Receive Packet Steering (RPS) und Receive Flow Steering (RFS) konfiguriert. Eine Reihe von empfohlenen Einstellungen, die auf dem von Ihnen verwendeten Instanztyp basieren, finden [Anhang: Empfohlene Parameter für die Abstimmung interrupt/RPS](#recommended-parameters) Sie unter.

1. Platzieren Sie systemd-Prozesse von den CPU-Kernen der Agenten fern.

1. Leitet Hardware-Interrupt-Anfragen von den CPU-Kernen der Agenten weg.

1. Konfigurieren Sie RPS so, dass die Hardware-Warteschlange einer einzelnen Netzwerkschnittstellenkarte nicht zu einem Engpass im Netzwerkverkehr wird.

1. Konfigurieren Sie RFS, um die CPU-Cache-Trefferquote zu erhöhen und dadurch die Netzwerklatenz zu reduzieren.

Das vom RPM bereitgestellte `set_irq_affinity.sh` Skript konfiguriert alle oben genannten Funktionen für Sie. Zu crontab hinzufügen, sodass es bei jedem Start angewendet wird:

```
echo "@reboot sudo /opt/aws/groundstation/bin/set_irq_affinity.sh '${interrupt_core_list}' '${rps_core_mask}' >> /var/log/user-data.log 2>&1" >>/var/spool/cron/root
```
+ `interrupt_core_list`Ersetzen Sie es durch Kerne, die für den Kernel und das Betriebssystem reserviert sind — in der Regel den ersten und den zweiten, zusammen mit Hyperthread-Kernpaaren. Dies sollte sich nicht mit den oben ausgewählten Kernen überschneiden. (Beispiel: '0,1,48,49' für eine Hyperthread-Instanz mit 96 CPUs).
+ `rps_core_mask`ist eine hexadezimale Bitmaske, die angibt, welche eingehenden Pakete verarbeitet werden CPUs sollen, wobei jede Ziffer für 4 steht. CPUs Sie muss außerdem alle 8 Zeichen, beginnend von rechts, durch Kommas getrennt werden. Es wird empfohlen, alles zuzulassen CPUs und das Balancing vom Caching übernehmen zu lassen.
  + Eine Liste der empfohlenen Parameter für jeden Instance-Typ finden Sie [Anhang: Empfohlene Parameter für die Abstimmung interrupt/RPS](#recommended-parameters) unter.
+  Beispiel für eine 96-CPU-Instanz: 

  ```
  echo "@reboot sudo /opt/aws/groundstation/bin/set_irq_affinity.sh '0,1,48,49' 'ffffffff,ffffffff,ffffffff' >> /var/log/user-data.log 2>&1" >>/var/spool/cron/root
  ```

## Tune Rx Interrupt Coalescing — wirkt sich auf das Netzwerk aus
<a name="tune-rx-interrupts"></a>

 Interrupt-Coalescing verhindert, dass das Host-System mit zu vielen Interrupts überflutet wird, und erhöht den Netzwerkdurchsatz. Bei dieser Konfiguration werden Pakete gesammelt und alle 128 Mikrosekunden ein einziger Interrupt generiert. Zu crontab hinzufügen, sodass es bei jedem Start angewendet wird: 

```
echo "@reboot sudo ethtool -C ${interface} rx-usecs 128 tx-usecs 128 >>/var/log/user-data.log 2>&1" >>/var/spool/cron/root
```
+ `interface`Ersetzen Sie es durch die Netzwerkschnittstelle (Ethernet-Adapter), die für den Empfang von Daten konfiguriert ist. In der Regel ist dies der Fall, `eth0` da dies die Standard-Netzwerkschnittstelle ist, die einer EC2-Instance zugewiesen ist.

## Tune Rx Ring Buffer — wirkt sich auf das Netzwerk aus
<a name="tune-rx-ring-buffer"></a>

 Erhöhen Sie die Anzahl der Ringeinträge für den Rx-Ringpuffer, um Paketverluste oder -überläufe bei Burst-Verbindungen zu verhindern. Fügen Sie dem Crontab Folgendes hinzu, damit es bei jedem Start korrekt eingestellt ist: 

```
echo "@reboot sudo ethtool -G ${interface} rx 16384 >>/var/log/user-data.log 2>&1" >>/var/spool/cron/root
```
+ `interface`Ersetzen Sie es durch die Netzwerkschnittstelle (Ethernet-Adapter), die für den Empfang von Daten konfiguriert ist. In der Regel ist dies der Fall, `eth0` da dies die Standard-Netzwerkschnittstelle ist, die einer EC2-Instance zugewiesen ist.
+ Wenn Sie eine `c6i` Familieninstanz einrichten, muss der Befehl so geändert werden, dass der Ringpuffer auf statt auf `8192` gesetzt wird. `16384`

## CPU C-State abstimmen — wirkt sich auf die CPU aus
<a name="tune-cpu-c-state"></a>

 Stellen Sie den CPU-C-Status ein, um einen Leerlauf zu verhindern, der zu Paketverlusten beim Start eines Kontakts führen kann. Erfordert einen Neustart der Instanz. 

```
echo "GRUB_CMDLINE_LINUX_DEFAULT=\"console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 intel_idle.max_cstate=1 processor.max_cstate=1 max_cstate=1\"" >/etc/default/grub
echo "GRUB_TIMEOUT=0" >>/etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
```

## Eingangsports reservieren — wirkt sich auf das Netzwerk aus
<a name="reserve-ingress-ports"></a>

 Reservieren Sie alle Ports in Ihrem `AwsGroundStationAgentEndpoint` Eingangsadress-Portbereich, um Konflikte bei der Kernel-Nutzung zu vermeiden. Ein Konflikt bei der Portnutzung führt dazu, dass der Kontakt und die Datenübermittlung fehlschlagen. 

```
echo "net.ipv4.ip_local_reserved_ports=${port_range_min}-${port_range_max}" >> /etc/sysctl.conf
```
+ Beispiel: `echo "net.ipv4.ip_local_reserved_ports=42000-43500" >> /etc/sysctl.conf`.

## Starten Sie neu
<a name="reboot"></a>

Nachdem alle Optimierungen erfolgreich angewendet wurden, starten Sie die Instanz neu, damit die Optimierungen wirksam werden.

```
sudo reboot
```

## Anhang: Empfohlene Parameter für die Abstimmung interrupt/RPS
<a name="recommended-parameters"></a>

 In diesem Abschnitt werden die empfohlenen Parameterwerte für die Verwendung im Abschnitt Feinabstimmung von Hardware-Interrupts und Empfangswarteschlangen — Auswirkungen auf CPU und Netzwerk festgelegt. 


| Familie | Instance-Typ | \$1 \$1interrupt\$1core\$1list\$1 | \$1 \$1rps\$1core\$1mask\$1 | 
| --- | --- | --- | --- | 
|  c7 i  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.html)  | 
|  c6i  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.html)  | 
|  c5  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.html)  | 
|  c5n  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.html)  | 
|  m5  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.html)  | 
|  r5  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.html)  | 
|  r5n  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.html)  | 
|  g4dn  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.html)  | 
|  p4d  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.html)  | 
|  p3dn  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.html)  | 