Get Hands-on with Amazon EKS - Workshop Event Series
Whether you're taking your first steps with Kubernetes or you're an experienced practitioner looking to sharpen your skills, our Amazon EKS workshop series delivers practical, real-world experience that moves you forward. Learn directly from AWS solutions architects and EKS specialists through hands-on sessions designed to build your confidence with Kubernetes. Register now and start building with Amazon EKS!
Wie verbessere ich die Datenübertragungsleistung, wenn ich den AWS CLI-Befehl „sync“ für Amazon S3 verwende?
Ich verwende den Sync-Befehl des AWS Command Line Interface (AWS CLI), um Daten auf Amazon Simple Storage Service (Amazon S3) zu übertragen. Der Abschluss der Übertragung dauert jedoch sehr lange.
Kurzbeschreibung
Die Anzahl der Objekte im Quell- und Ziel-Bucket kann sich auf die Zeit auswirken, die der Befehl sync benötigt, um den Vorgang abzuschließen. Die Größe der Übertragung kann sich auf die Dauer der Synchronisierung und die Kosten von Anfragen an Amazon S3 auswirken.
Lösung
Hinweis: Wenn du beim Ausführen von AWS CLI-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.
Abgelaufene Löschmarkierungen entfernen
Da der sync-Befehl List-API-Aufrufe im Backend ausführt, wirken sich Löschmarkierungen auf die Leistung des sync-Befehls aus. Es hat sich bewährt, die Anzahl der Löschmarkierungen zu minimieren. Du kannst eine S3-Lebenszykluskonfigurationsregel verwenden, um abgelaufene Löschmarkierungen in einem Bucket mit Versionsverwaltung automatisch zu entfernen.
Mehrere AWS-CLI-Operationen ausführen
Um eine große Datenmenge zu kopieren, führe separate sync-Operationen parallel aus. Der folgende Beispielbefehl führt parallele sync-Operationen für verschiedene Präfixe aus:
aws s3 sync s3://source-AWSDOC-EXAMPLE-BUCKET/folder1 s3://destination-AWSDOC-EXAMPLE-BUCKET/folder1 aws s3 sync s3://source-AWSDOC-EXAMPLE-BUCKET/folder2 s3://destination-AWSDOC-EXAMPLE-BUCKET/folder2
Oder du kannst parallele Synchronisierungsoperationen für separate Ausschluss- und Einschlussfilter ausführen. Die folgenden Beispieloperationen trennen die zu synchronisierenden Dateien nach Schlüsselnamen, die mit den Zahlen 0 bis 4 und den Zahlen 5 bis 9 beginnen:
aws s3 sync s3://source-AWSDOC-EXAMPLE-BUCKET/ s3://destination-AWSDOC-EXAMPLE-BUCKET/ --exclude "*" --include "0*" --include "1*" --include "2*" --include "3*" --include "4*" aws s3 sync s3://source-AWSDOC-EXAMPLE-BUCKET/ s3://destination-AWSDOC-EXAMPLE-BUCKET/ --exclude "*" --include "5*" --include "6*" --include "7*" --include "8*" --include "9*"
Hinweis: Selbst wenn du die Filter exclude (ausschließen) und include (einschließen) verwendest, überprüft der sync-Befehl dennoch alle Dateien im Quell-Bucket. Die Überprüfung identifiziert die Quelldateien, die in den Ziel-Bucket kopiert werden sollen. Wenn du mehrere Synchronisierungsoperationen für verschiedene Schlüsselnamenpräfixe hast, überprüft jede sync-Operation alle Quelldateien. Aufgrund der exclude- und include-Filter kopiert Amazon S3 jedoch nur die Dateien, die du in die Filter aufnimmst, in den Ziel-Bucket.
Weitere Informationen zur Optimierung der Leistung der Workload findest du unter Bewährte Entwurfsmuster: Optimierung der Amazon S3-Leistung.
S3 Transfer Acceleration aktivieren
Verwende S3 Transfer Acceleration, um die Übertragungsgeschwindigkeiten zu verbessern.
Um die Preise für S3 Transfer Acceleration zu überprüfen, wähle die Registerkarte Datentransfer auf der Seite Amazon S3-Preise aus. Verwende das Amazon S3 Transfer Acceleration Speed Comparison-Tool, um festzustellen, ob S3 Transfer Acceleration deine Übertragungsgeschwindigkeiten verbessert.
Hinweis: Mit S3 Transfer Acceleration kannst du die CopyObject-Aktion nicht in allen AWS-Regionen verwenden.
Änderung der AWS-CLI-Konfigurationswerte
max_concurrent_requests
Wenn du max_concurrent_requests verwendest, beträgt die Standardanzahl von Anforderungen, die du gleichzeitig an Amazon S3 senden kannst, 10. Erhöhe den Wert, um die Leistung zu verbessern.
Wichtig:
- Wenn du mehr Threads ausführst, verbrauchst du mehr Ressourcen auf dem Computer. Stelle sicher, dass dein Computer über genügend Ressourcen verfügt, um die maximale Anzahl gleichzeitiger Anforderungen zu unterstützen.
- Zu viele gleichzeitige Anforderungen können zu Verbindungs-Timeouts führen oder die Reaktionsfähigkeit des Systems verlangsamen. Um Timeout-Probleme mit der AWS CLI zu vermeiden, kannst du versuchen, die Option „--cli-read-timeout“ oder die Option „--cli-connect-timeout“ auf 0 zu setzen.
multipart_threshold
Wenn eine Datei den Größenschwellenwert erreicht, verwendet Amazon S3 einen mehrteiligen Upload anstelle einer einzelnen Operation. Der Standardwert für multipart_threshold ist 8 MB. Führe den folgenden Befehl aus, um den Standardwert zu erhöhen:
aws configure set default.s3.multipart_threshold 16MB
Hinweis: Ersetze 16MB durch deine mehrteilige Schwellenwertgröße.
multipart_chunksize
Der Standardwert für multipart_chunksize ist 8 MB und der Mindestwert ist 5 MB. Führe den folgenden Befehl aus, um die Chunk-Größe zu erhöhen:
aws configure set default.s3.multipart_chunksize 16MB
Hinweis: Ersetze 16MB durch deine neue Chunk-Größe.
Bei großen Objekten empfiehlt es sich, den multipart_threshold auf 100 MB festzulegen, sodass nur große Dateien mehrteilige Uploads verwenden. Es ist auch eine bewährte Methode, die multipart_chunksize auf 25 MB festzulegen, um ein Gleichgewicht zwischen effizienten Uploads und verwaltbaren Teilgrößen herzustellen.
(Optional) EC2-Instance-Konfiguration überprüfen
Wenn du sync von einer Amazon Elastic Compute Cloud (Amazon EC2)-Instance aus ausführst, verwende die folgenden bewährten Methoden, um die Leistung zu verbessern:
- Verwende einen größeren EC2-Instance-Typ mit besserem Netzwerkdurchsatz und besseren CPU-Ressourcen, um die Datenübertragungsraten zu beschleunigen.
- Platziere die Instance in derselben Region wie dein Bucket, um die Netzwerklatenz zu reduzieren.
- Verwende einen Amazon Virtual Private Cloud (Amazon VPC)-Gateway-Endpunkt, um den Datenverkehr innerhalb des AWS-Netzwerks weiterzuleiten und so die Leistung und Sicherheit zu verbessern.
Hinweis: Du kannst diese Konfiguration nur verwenden, wenn deine Instance dieselbe Region wie dein Bucket hat. - Verwende Amazon Elastic Block Store (Amazon EBS)-optimierte Instances und wähle EBS-Volume-Typen aus, die hohe IOPS und hohen Durchsatz bieten, z. B. gp3- oder io2-Volumes. Dies hilft, I/O-Konflikte und Latenz zu reduzieren, wenn du mit lokalen Daten arbeitest, bevor du sie an Amazon S3 überträgst.
- Wähle Instances aus, die Enhanced Networking unterstützen, um eine höhere Leistung von Paketen pro Sekunde (PPS) und eine geringere Latenz zu erzielen.
- Wenn dein Workload von größeren TCP-Paketen profitiert, aktiviere Jumbo Frames (MTU 9001).
Ähnliche Informationen
Wie übertrage ich große Datenmengen von einem Amazon S3-Bucket in einen anderen?
- Themen
- Storage
- Sprache
- Deutsch
Ähnliche Videos

