Wie behebe ich langsame oder wechselhafte Geschwindigkeiten beim Herunterladen oder Hochladen zu Amazon S3?

Lesedauer: 5 Minute
0

Ich möchte Probleme mit hoher Latenz oder wechselhaften Geschwindigkeiten beim Herunterladen oder Hochladen zum Amazon Simple Storage Service (Amazon S3) von einem bestimmten Netzwerk oder Computer aus beheben.

Lösung

Überprüfen Sie die folgenden Punkte, um herauszufinden, was zu langsamen oder inkonsistenten Geschwindigkeiten beim Herunterladen oder Hochladen zu Amazon S3 beitragen könnte, und diese Ursachen zu beheben:

  • Der Standort des Clients, der Anfragen stellt
  • Der Client-Internetdienstanbieter (ISP)
  • Das Client-Netzwerk
  • Die Client-Ressourcen
  • Die Anforderungsrate an Amazon S3
  • Die Amazon S3-Serverzugriffsprotokolle zur Bestimmung der Bearbeitungszeit

Der Standort des Clients, der Anfragen stellt

Verwenden Sie Amazon S3-Buckets, die sich geografisch so nah wie möglich an Ihrem Client befinden. Buckets sind weltweit zugänglich, sie befinden sich jedoch in einer bestimmten AWS-Region. Die geografische Entfernung zwischen der Anfrage und dem Bucket trägt zu der Zeit bei, die benötigt wird, bis eine Antwort eingeht.

Sie können die Auswirkungen der geografischen Entfernung zwischen dem Client und dem S3-Bucket testen. Sie können beispielsweise eine Amazon Elastic Compute Cloud (Amazon EC2)-Instance in derselben AWS-Region wie der Bucket starten. Starten Sie dann eine weitere Instance in einer anderen Region. Testen Sie den Upload und Download derselben Datei mit beiden Instanzen und vergleichen Sie dann den Durchsatz zwischen den beiden Regionen.

Um die Entfernung zwischen dem Client und dem S3-Bucket zu verringern, verschieben Sie Ihre Daten in einen Bucket in einer anderen Region, der näher am Client liegt. Sie können die regionsübergreifende Replikation so konfigurieren, dass Daten im Quell-Bucket in den Ziel-Bucket in der neuen Region repliziert werden. Erwägen Sie als weitere Option, den Client näher an den S3-Bucket zu migrieren.

Der Client-Internetdienstanbieter (ISP)

Überprüfen Sie Ihren Netzwerkpfad auf Probleme, die sich auf Ihre Verbindung über das Internet auswirken können. Zu diesen Problemen können Paketverlust, eine hohe Anzahl von Hops oder andere Probleme im Zusammenhang mit dem ISP gehören.

Tools wie mtr und traceroute können dabei helfen, Hinweise auf einen möglichen Paketverlust zu erhalten. Sie können zudem die Latenz der Pakete angeben, die an den Remote-Host gesendet werden. Darüber hinaus können diese Tools dabei helfen, festzustellen, ob ein Netzwerk-Hop zu einer höheren Latenz führt.

Der folgende Linux-Befehl traceroute verwendet beispielsweise den TCP-Port 80, um die Konnektivität zum regionalen Endpunkt us-west-2 (Oregon) zu testen:

sudo traceroute -P TCP -p 80 s3.us-west-2.amazonaws.com

Auf Windows-Betriebssystemen können Sie ein ähnliches Tool namens tracert verwenden.

**Hinweis:**Viele Netzwerkgeräte reagieren nicht auf ICMP. Um einen Test durchzuführen, der Anfragen an Amazon S3 ähnelt, stellen Sie sicher, dass Sie eine TCP-Traceroute oder eine MTR zum regionalen Endpunkt des Buckets ausführen.

Wenn die Internetroute vom Client zu Amazon S3 nicht optimal ist, sollten Sie die Verwendung von Amazon S3 Transfer Acceleration in Betracht ziehen, das die Edge-Standorte von Amazon CloudFront nutzt. Sehen Sie sich das Tool Amazon S3 Transfer Acceleration Speed Comparison an, um festzustellen, ob Transfer Acceleration die Leistung für Ihren Anwendungsfall verbessern kann.

**Hinweis:**Wenn Sie Transfer Acceleration aktivieren, können zusätzliche Datenübertragungsgebühren anfallen. Informieren Sie sich unbedingt über die Amazon S3-Preise für Datenübertragungen.

Das Client-Netzwerk

Stellen Sie sicher, dass Ihr Client-Netzwerk fehlerfrei ist, indem Sie interne Paketprüfungen, Antiviren-Scans oder die Netzwerkzugriffsverwaltung überprüfen. Prüfen Sie außerdem, wie Ihr Client oder Ihre Anwendung mit DNS-Auflösung und -Caching umgeht.

Um vom dezentralen Charakter und der Verfügbarkeit von Amazon S3 zu profitieren, sollten Sie es vermeiden, die DNS-Auflösung über einen längeren Zeitraum zwischenzuspeichern.

Die Client-Ressourcen

Möglicherweise kommt es zu Latenzen in Ihrer Anwendung oder in der Art und Weise, wie Ihr Host, der die Anfragen stellt, die gesendeten Anfragen und die empfangenen Antworten behandelt. Als bewährte Methode sollten Sie sicherstellen, dass innerhalb des Hosts keine Ressourcenkonflikte vorliegen, die zur allgemeinen Latenz beitragen könnten. Ein Ressourcenkonflikt innerhalb des Hosts kann beispielsweise mit der CPU, dem Arbeitsspeicher oder der Netzwerkbandbreite zusammenhängen.

Sie können die Ressourcennutzung während der Datenübertragung auf den meisten Client-Systemen mithilfe von Tools wie Resource Monitor oder dem Befehl top überprüfen. Die verfügbaren Tools hängen von Ihrem Betriebssystem ab.

Das Speichergerät oder -system des Clients kann ebenfalls eine Latenzquelle sein. Lese- oder Schreibvorgänge auf dem Speichergerät des Clients, bei denen eine erhöhte Latenz auftritt, können sich auf die Leistung des Downloads oder Uploads zu Amazon S3 auswirken. Sie müssen Probleme mit den IOPS des Speichergeräts von der Clientseite aus beheben. Sie können die Leistung von Amazon S3 mit der Amazon CloudWatch-Metrik FirstByteLatency analysieren.

**Hinweis:**Amazon S3 CloudWatch-Anforderungsmetriken werden zum gleichen Tarif wie benutzerdefinierte Metriken abgerechnet.

FirstByteLatency zeigt, wie lange es dauert, bis Amazon S3 die Anfrage vom Client verarbeitet und dann mit dem Senden der Antwort an den Client beginnt. Die CloudWatch-Metrik bietet einen Überblick über die Leistung auf Bucket-Ebene. Sie können Ihre Nachforschungen mithilfe der Amazon S3-Serverzugriffsprotokolle eingrenzen. Weitere Informationen finden Sie im Abschnitt Amazon S3-Serverzugriffsprotokolle zur Bestimmung der Bearbeitungszeit.

Die Anforderungsrate an Amazon S3

Standardmäßig können S3-Buckets Tausende von Anfragen pro Sekunde und Präfix unterstützen. Wenn ein Client HTTP 5xx-Fehlerantworten von Amazon S3 erhält, kann dies darauf hindeuten, dass die unterstützte Anforderungsrate pro Präfix überschritten wird. Informationen zur Behebung von 5xx-Fehler finden Sie unter Wie behebe ich einen HTTP 500- oder 503-Fehler von Amazon S3?

Die Amazon S3-Serverzugriffsprotokolle zur Bestimmung der Bearbeitungszeit

Sie können die Amazon S3-Serverzugriffsprotokollierung aktivieren, um die Durchlaufzeit-Metriken zu überprüfen. Die Bearbeitungszeit ist die Zeit zwischen dem Empfang des letzten Bytes der Anfrage und dem Senden des ersten Bytes der Antwort. Dies ist eine Time To First Byte (TTFB)-Metrik. Sie können die Bearbeitungszeit verwenden, um zu ermitteln, wie viel Zeit der Vorgang aus Amazon S3-Perspektive in Anspruch nimmt. Anschließend können Sie andere Latenzen außerhalb von Amazon S3 auswerten, die möglicherweise zu einem insgesamt langsamen Download oder Upload beitragen.

Wenn Sie feststellen, dass die Latenz höher als gewöhnlich ist, empfiehlt es sich, die Anfrage erneut zu versuchen, anstatt auf den Abschluss der Anfrage zu warten. Weitere Informationen zu diesen Leitlinien und anderen Leistungsempfehlungen finden Sie unter Leistungsrichtlinien für Amazon S3.

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr