Salta al contenuto

Come posso risolvere i problemi di lentezza o velocità incostante quando scarico o carico dati su Amazon S3 da un client on-premises?

6 minuti di lettura
0

Riscontro problemi di latenza quando scarico o carico dati tra Amazon Simple Storage Service (Amazon S3) e una rete specifica o un client on-premises.

Risoluzione

Per identificare e risolvere problemi di latenza scaricando o caricando dati su Amazon S3, esamina le seguenti configurazioni.

Posizione del client che effettua le richieste

È consigliabile utilizzare bucket Amazon S3 che siano quanto più possibile geograficamente vicini al client locale. Se il bucket è geograficamente lontano dalla richiesta, il tempo di risposta è più lungo.

Per testare l'effetto della distanza geografica tra il client e il bucket S3, completa i seguenti passaggi:

  1. Avvia un'istanza Amazon Elastic Compute Cloud (Amazon EC2) nella stessa Regione AWS del bucket.
  2. Avvia un'altra istanza in una Regione diversa.
  3. Utilizza entrambe le istanze per caricare e scaricare lo stesso file.
  4. Confronta il throughput tra le due Regioni.

Per ridurre la distanza tra il client locale e il bucket S3, sposta i dati in un bucket situato nella Regione più vicina al client. Puoi configurare la replica tra Regioni (CRR) per replicare i dati del bucket di origine nel bucket di destinazione nella nuova Regione. Oppure migra il client più vicino al bucket S3.

Provider di servizi Internet del client locale

Controlla il percorso di rete per individuare eventuali perdite di pacchetti, numero elevato di hop, problemi relativi ad altri provider di servizi Internet (ISP), ritrasmissioni TCP, errori di handshake SSL, ritardi nella risoluzione DNS o proxy di rete.

Per determinare la potenziale perdita di pacchetti e la latenza dei pacchetti inviati all'host remoto, utilizza strumenti come mtr e traceroute. Gli strumenti possono anche stabilire se un hop di rete sta causando una latenza più elevata. Ad esempio, il seguente comando Linux traceroute utilizza la porta TCP 80 per testare la connettività all'endpoint Regionale us-west-2 (Oregon):

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

Per i sistemi operativi Windows, esegui questo comando tracert:

$ tracert -d -4 s3.amazonaws.com

Nota: molti dispositivi di rete non rispondono al protocollo ICMP (Internet Control Message Protocol). Per un test simile alle richieste Amazon S3, esegui un comando ** traceroute** o mtr TCP sull'endpoint Regionale del bucket.

Se la route Internet dal client ad Amazon S3 non è ottimale, utilizza l'Accelerazione del trasferimento Amazon S3 per le posizioni edge in Amazon CloudFront. Utilizza lo strumento Speed Comparison dell’Accelerazione del trasferimento Amazon S3 per determinare se l'accelerazione del trasferimento può migliorare le prestazioni.

Nota: se attivi l’Accelerazione del trasferimento, potrebbero essere applicati costi aggiuntivi per il trasferimento dei dati. Consulta Prezzi di Amazon S3 per i trasferimenti di dati.

Rete del client locale

Per verificare che la rete client sia integra, esamina le ispezioni interne dei pacchetti, le scansioni antivirus o la gestione degli accessi alla rete. Inoltre, esamina come il client o l'applicazione gestisce la risoluzione DNS e la memorizzazione nella cache. È consigliabile non memorizzare nella cache la risoluzione DNS per lunghi periodi.

Per identificare problemi di latenza e prestazioni di un client on-premises con trasferimenti di sincronizzazione Amazon S3 lenti, utilizza i test diagnostici di rete. È consigliabile analizzare regolarmente le prestazioni per rilevare potenziali problemi prima che influiscano sulla velocità di trasferimento.

Nota: è consigliabile utilizzare AWS PrivateLink per Amazon S3 per una maggiore sicurezza e trasferimenti di dati più affidabili.

Risorse del client

L'applicazione potrebbe mostrare problemi di latenza a causa del modo in cui l'host che effettua le richieste gestisce le richieste e le risposte. È consigliabile evitare conflitti di risorse all'interno dell'host. Ad esempio, il conflitto tra le risorse potrebbe riguardare la CPU, la memoria o la larghezza di banda della rete.

Per verificare l'utilizzo delle risorse durante il trasferimento dei dati, utilizza strumenti come Resource Monitor o il comando top. Per ulteriori informazioni, consulta Resource Monitor (Monitoraggio delle risorse) sul sito web di Microsoft Learn.

Nota: la disponibilità degli strumenti dipende dal sistema operativo in uso.

Le operazioni di lettura o scrittura sul dispositivo di archiviazione del client con latenza elevata possono influire sulle prestazioni di scaricamento e caricamento su Amazon S3. Per risolvere i problemi relativi agli IOPS del dispositivo di arcfhiviazione dal lato client, utilizza la metrica FirstByteLatency di Amazon CloudWatch per analizzare le prestazioni di Amazon S3.

Nota: AWS addebita per le metriche delle richieste di Amazon S3 gli stessi costi delle metriche personalizzate di CloudWatch. Per informazioni sui prezzi di CloudWatch, consulta Prezzi di Amazon CloudWatch.

Frequenza di richieste ad Amazon S3

Per impostazione predefinita, i bucket S3 possono supportare migliaia di richieste al secondo per ogni prefisso partizionato. Se un client riceve risposte di errore HTTP 5xx da Amazon S3, la frequenza di richieste supportata per prefisso è stata superata. Per risolvere gli errori 5xx, consulta Come faccio a risolvere un errore HTTP 500 o 503 di Amazon S3?

Per velocizzare i tempi di trasferimento con le posizioni edge distribuite globalmente di AWS Cloudfront, utilizza l’Accelerazione del trasferimento Amazon S3.

Per migliorare le configurazioni di rete e migliorare le prestazioni di trasferimento, utilizza AWS Direct Connect. Per ulteriori informazioni, consulta Improving Performance on AWS and Hybrid Networks (Miglioramento delle prestazioni su reti AWS e ibride).

Per modelli di progettazione che migliorano le prestazioni, consulta Modelli di progettazione delle prestazioni per Amazon S3. Puoi utilizzare AWS DataSync, AWS Snowball, AWS Snowcone e AWS Transfer Family per migrare set di dati di grandi dimensioni su Amazon S3. In alternativa, puoi utilizzare gli AWS SDK e l'Interfaccia della linea di comando AWS (AWS CLI) per creare processi di trasferimento paralleli e in batch efficienti. Per utilizzare il caricamento in più parti di file di grandi dimensioni, consulta How do I optimize performance when I use AWS CLI to upload large files to Amazon S3? (Come posso ottimizzare le prestazioni quando utilizzo AWS CLI per caricare file di grandi dimensioni su Amazon S3?)

Log di accesso al server Amazon S3 che determinano la metrica Turn-Around Time

Per esaminare la metrica Turn-Around Time, attiva la registrazione degli accessi al server Amazon S3. Per ulteriori informazioni sulla metrica Turn-Around Time, consulta Tempo di risposta in Formato del log di accesso al server Amazon S3. Utilizza la metrica Turn-Around Time per determinare il tempo impiegato dall'operazione. Dopodiché, puoi valutare altre latenze esterne ad Amazon S3 che potrebbero causare uno scaricamento o un caricamento lento.

Se la latenza è superiore al previsto, è consigliabile ripetere la richiesta anziché attendere che venga completata. Per ulteriori informazioni, consulta Linee guida per le prestazioni di Amazon S3.

Attività di trasferimento di file

Utilizza la metrica TotalRequestLatency per monitorare il tempo per ogni richiesta trascorso dal primo byte ricevuto dal bucket S3 all'ultimo byte che il client locale invia al bucket. Per determinare potenziali problemi di prestazioni, controlla le metriche GetRequestsPutRequests e i codici di stato 4xx e 5xx.

Nota: AWS addebita per le metriche GetRequests e PutRequests gli stessi costi delle metriche personalizzate di Amazon CloudWatch.

Informazioni correlate

Metriche delle richieste Amazon S3 in CloudWatch

Come posso migliorare le prestazioni di trasferimento dei dati con il comando sync di AWS CLI per Amazon S3?