Come posso risolvere i problemi di velocità lente o incoerenti durante il download o il caricamento su Amazon S3?

6 minuti di lettura
0

Desidero risolvere problemi di latenza elevata o velocità incoerenti durante il download o il caricamento su Amazon Simple Storage Service (Amazon S3) da una rete o un computer specifici.

Risoluzione

Controlla quanto segue per identificare e mitigare i fattori che potrebbero contribuire alla lentezza o all'incoerenza delle velocità di download o caricamento su Amazon S3:

  • La posizione del cliente che effettua le richieste
  • Il client Internet Service Provider (ISP)
  • La rete di clienti
  • Le risorse del cliente
  • La percentuale di richieste ad Amazon S3
  • I registri di accesso al server Amazon S3 per determinare il tempo di consegna

La posizione del cliente che effettua le richieste

Usa bucket Amazon S3 il più possibile vicini geograficamente al tuo cliente. I bucket sono accessibili a livello globale, ma risiedono in una regione AWS specifica. La distanza geografica tra la richiesta e il bucket contribuisce al tempo necessario per ricevere una risposta.

Puoi testare l'impatto della distanza geografica tra il client e il bucket S3. Ad esempio, puoi lanciare un'istanza Amazon Elastic Compute Cloud (Amazon EC2) nella stessa regione AWS del bucket. Quindi, avvia un'altra istanza in un'altra regione. Prova il caricamento e il download dello stesso file utilizzando entrambe le istanze, quindi confronta la velocità di trasmissione effettiva tra le due regioni.

Per ridurre la distanza tra il client e il bucket S3, sposta i dati in un bucket in un'altra regione più vicina al client. È possibile configurare la replica cross-Region in modo che i dati nel bucket di origine vengano replicati nel bucket di destinazione nella nuova regione. Come altra opzione, considera la migrazione del client più vicino al bucket S3.

Il client Internet Service Provider (ISP)

Controlla il tuo percorso di rete per eventuali problemi che influiscono sul modo in cui la tua connessione attraversa Internet. Questi problemi possono includere la perdita di pacchetti, un numero elevato di hop o altri problemi relativi all'ISP.

Strumenti come mtr e traceroute possono aiutare a fornire indizi sulla potenziale perdita di pacchetti. Possono anche fornire la latenza dei pacchetti inviati all'host remoto. Inoltre, questi strumenti possono aiutare a identificare se c'è un problema di rete che causa una maggiore latenza.

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

Sui sistemi operativi Windows, puoi utilizzare uno strumento simile chiamato tracert.

Nota: Molti dispositivi di rete non rispondono all'ICMP. Per un test simile alle richieste di Amazon S3, assicurati di eseguire un traceroute TCP o mtr sull'endpoint regionale del bucket.

Se il percorso Internet dal client ad Amazon S3 non è ottimale, prendi in considerazione l'utilizzo di Amazon S3 Transfer Acceleration, che sfrutta le edge location di Amazon CloudFront. Consulta lo strumento Amazon S3 Transfer Acceleration Speed Comparison per vedere se Transfer Acceleration può migliorare le prestazioni per il tuo caso d'uso.

Nota: Se attivi Transfer Acceleration, potrebbero essere applicati costi aggiuntivi per il trasferimento dei dati. Consulta i prezzi di Amazon S3 per i trasferimenti di dati.

La rete di clienti

Verifica che la rete client sia integra esaminando le ispezioni interne dei pacchetti, la scansione antivirus o la gestione degli accessi alla rete. Inoltre, esamina come il tuo client o applicazione gestisce la risoluzione e la memorizzazione nella cache del DNS.

Per sfruttare la natura e la disponibilità distribuite di Amazon S3, evita di memorizzare nella cache la risoluzione DNS per lunghi periodi di tempo.

Le risorse del cliente

Potrebbe essere stata introdotta una latenza nell'applicazione o nel modo in cui l'host che effettua le richieste gestisce le richieste inviate e le risposte ricevute. Come best practice, verifica che non vi siano contese di risorse all'interno dell'host che potrebbero contribuire alla latenza complessiva. Ad esempio, il conflitto di risorse all'interno dell'host potrebbe riguardare la CPU, la memoria o la larghezza di banda della rete.

È possibile controllare l'utilizzo delle risorse durante il trasferimento dei dati sulla maggior parte dei sistemi client utilizzando strumenti come Resource Monitor o il comando top. Gli strumenti disponibili dipendono dal sistema operativo in uso.

Anche il dispositivo o il sistema di storage del client potrebbe essere una fonte di latenza. Le operazioni di lettura o scrittura sul dispositivo di storage del cliente con latenza elevata possono influire sulle prestazioni del download o del caricamento su Amazon S3. È necessario risolvere gli IOPS del dispositivo di storage dal lato client. Puoi analizzare le prestazioni di Amazon S3 con la metrica Amazon CloudWatch FirstByteLatency.

Nota: Le metriche delle richieste di Amazon S3 CloudWatch vengono fatturate alla stessa tariffa delle metriche personalizzate.

FirstByteLatency mostra quanto tempo impiega Amazon S3 per elaborare la richiesta del client e quindi iniziare a inviare la risposta al client. La metrica CloudWatch fornisce una prospettiva delle prestazioni a livello di bucket. Puoi restringere la tua indagine utilizzando i log di accesso al server Amazon S3. Per ulteriori informazioni, consulta la sezione Registri di accesso al server Amazon S3 per determinare il tempo di consegna.

La percentuale di richieste ad Amazon S3

Per impostazione predefinita, i bucket S3 possono supportare migliaia di richieste al secondo per prefisso. Se un client riceve risposte di errore HTTP 5xx da Amazon S3, ciò può indicare che la frequenza di richiesta supportata per prefisso è stata superata. Per risolvere gli errori 5xx, vedi Come posso risolvere un errore HTTP 500 o 503 di Amazon S3?

I registri di accesso al server Amazon S3 per determinare il tempo di consegna

Puoi attivare la registrazione degli accessi al server Amazon S3 per esaminare i parametri del Turn-Around Time. Il tempo di risposta è il tempo che intercorre tra la ricezione dell'ultimo byte della richiesta e l'invio del primo byte della risposta. Questa è una metrica TTFB (Time To First Byte). Puoi utilizzare Turn-Around Time per determinare la quantità di tempo necessaria per l'operazione dal punto di vista di Amazon S3. Quindi, puoi valutare altre latenze esterne ad Amazon S3 che potrebbero contribuire a un download o un caricamento complessivamente lenti.

Se riscontri una latenza più alta del solito, è consigliabile riprovare la richiesta anziché attendere il completamento della richiesta. Per ulteriori informazioni su questa guida e altri consigli sulle prestazioni, consulta le linee guida sulle prestazioni per Amazon S3.

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa