Comment résoudre les problèmes de lenteurs ou de vitesses incohérentes lors du téléchargement ou du chargement sur Amazon S3 ?

Date de la dernière mise à jour : 06/03/2020

Comment résoudre les problèmes de lenteurs ou de vitesses incohérentes lors du téléchargement ou du chargement vers Amazon Simple Storage Service (Amazon S3) ? Lorsque je télécharge depuis Amazon S3 ou que je charge sur Amazon S3 depuis un réseau ou une machine spécifique, mes requêtes peuvent souffrir d'une latence plus élevée. Comment puis-je diagnostiquer une latence élevée ou des vitesses incohérentes ?

Solution

Vérifiez les éléments suivants pour identifier et atténuer ce qui peut contribuer aux lenteurs ou aux vitesses incohérentes lors du téléchargement ou du chargement sur Amazon S3 :

  • L'emplacement du client effectuant les requêtes
  • Le fournisseur de services Internet (ISP) du client
  • Le réseau du client
  • Les ressources du client
  • Le taux de requêtes vers Amazon S3
  • Les journaux d'accès au serveur Amazon S3 pour déterminer le temps de réponse

L'emplacement du client effectuant les requêtes

Utilisez des compartiments Amazon S3 qui sont aussi proches géographiquement de votre client que possible. Les compartiments sont accessibles dans le monde entier, mais ils sont hébergés dans une région AWS spécifique. La distance géographique entre la requête et le compartiment influence le temps nécessaire pour la réception d'une réponse.

Vous pouvez tester l'impact de la distance géographique entre le client et le compartiment S3. Par exemple, vous pouvez lancer une instance Amazon Elastic Compute Cloud (Amazon EC2) dans la même région AWS que le compartiment, puis lancer une autre instance dans une autre région. Testez un chargement et un téléchargement du même fichier à l'aide des deux instances, puis comparez le débit entre les deux régions.

Pour réduire la distance entre le client et le compartiment S3, pensez à déplacer vos données d'un compartiment vers une autre région plus proche du client. Vous pouvez configurer la réplication entre régions afin que les données du compartiment source soient répliquées dans le compartiment de destination de la nouvelle région. Une autre option consiste à migrer le client plus près du compartiment S3.

Le fournisseur de services Internet (ISP) du client

Testez votre chemin réseau pour vérifier si une perte de paquets, un nombre élevé de sauts ou tout autre problème lié à un fournisseur de services Internet affecte la façon dont votre connexion transite par l'Internet.

Des outils tels que mtr et traceroute peuvent aider à fournir des indices pour une perte potentielle de paquets. La latence des paquets envoyés à l'hôte distant est aussi un bon indicateur à prendre en compte. De plus, ces outils peuvent vous aider à identifier si un saut réseau entraîne une latence plus élevée.

Par exemple, la commande Linux traceroute suivante utilise le port TCP 80 pour tester la connectivité au point de terminaison de la région us-west-2 (Oregon) :

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

Sur les systèmes d'exploitation Windows, vous pouvez utiliser un outil similaire appelé tracert.

Remarque : de nombreux périphériques réseau ne répondent pas à ICMP. Pour un test qui ressemble à des requêtes envoyées à Amazon S3, tâchez d'exécuter un traceroute TCP ou un mtr vers le point de terminaison régional du compartiment.

Si le routage Internet du client vers Amazon S3 n'est pas optimal, pensez à utiliser Amazon S3 Transfer Acceleration qui exploite les emplacements périphériques d'Amazon CloudFront. Consultez l'outil Amazon S3 Transfer Acceleration Speed Comparison pour voir si Transfer Acceleration peut améliorer les performances pour votre cas d'utilisation.

Remarque : si vous activez Transfer Acceleration, des frais de transfert de données supplémentaires peuvent s'appliquer. Assurez-vous de consulter la tarification Amazon S3 pour les transferts de données.

Le réseau du client

Vérifiez que votre réseau client est sain en passant en revue les contrôles internes de paquets, l'analyse antivirus ou la gestion des accès réseau. De plus, vérifiez la façon dont votre client ou votre application gère la résolution DNS et la mise en cache.

Pour profiter de la nature distribuée et de la disponibilité d'Amazon S3, évitez de mettre en cache la résolution DNS pendant de longues périodes.

Les ressources du client

Il peut y avoir une latence induite par votre application ou par la façon dont votre hôte qui effectue les requêtes gère les requêtes envoyées et les réponses reçues. Une bonne pratique consiste à vérifier qu'il n'y a pas de conflit de ressources au sein de l'hôte (par exemple avec le processeur, la mémoire ou la bande passante réseau) pouvant contribuer à la latence globale.

Vous pouvez vérifier l'utilisation des ressources lors du transfert de données sur la plupart des systèmes clients à l'aide d'outils tels que Resource Monitor ou la commande supérieure en fonction de votre système d'exploitation.

Le périphérique de stockage ou le système du client peut également être une source de latence. Les opérations de lecture ou d'écriture sur le périphérique de stockage du client qui rencontrent une latence élevée peuvent avoir un impact sur les performances du téléchargement depuis Amazon S3 ou du chargement sur Amazon S3. Vous devez résoudre les problèmes d'E/S par seconde du périphérique de stockage côté client. Par contre, les performances d'Amazon S3 peuvent être analysées à l'aide de la métrique Amazon CloudWatch FirstByteLatency.

Remarque : les métriques de requête Amazon S3 CloudWatch sont facturées au même tarif que les métriques personnalisées.

FirstByteLatency montre combien de temps il faut à Amazon S3 pour traiter la requête du client, puis commencer à envoyer la réponse au client. La métrique CloudWatch renseigne sur les performances au niveau du compartiment. Vous pouvez affiner votre enquête à l'aide des journaux d'accès au serveur Amazon S3. Pour plus d'informations, consultez la section Journaux d'accès au serveur Amazon S3 pour déterminer le temps de réponse.

Le taux de requêtes vers Amazon S3

Par défaut, les compartiments S3 peuvent prendre en charge des milliers de requêtes par seconde et par préfixe. Si un client reçoit des réponses d'erreur HTTP 5xx provenant d'Amazon S3, c'est qu'il y a peut-être un dépassement du taux de requêtes pris en charge par préfixe. Pour résoudre les erreurs 5xx, consultez Comment résoudre les erreurs HTTP 5xx d'Amazon S3 ?

Les journaux d'accès au serveur Amazon S3 pour déterminer le temps de réponse

Vous pouvez activer la journalisation des accès au serveur Amazon S3 pour consulter les métriques de temps de réponse. Le temps de réponse est le délai entre le moment où le dernier octet de la requête est reçu et le moment où le premier octet de la réponse est envoyé. Il s'agit d'une métrique TTFB (temps jusqu'au premier octet). Vous pouvez utiliser le temps de réponse pour déterminer le temps nécessaire à l'opération avec Amazon S3. Vous pouvez ensuite évaluer, sans Amazon S3, d'autres latences qui pourraient être responsables de la lenteur d'un téléchargement ou d'un chargement.

Si vous constatez une latence plus élevée que d'habitude, une bonne pratique consiste à réessayer la requête plutôt que d'attendre la fin de la requête. Pour plus d'informations sur ces conseils et d'autres recommandations en matière de performances, consultez Instructions sur les performances pour Amazon S3.


Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d’aide ?