Come posso ridurre l'aumento della latenza e risolvere i relativi problemi da CloudFront?

Ultimo aggiornamento: 02/06/2022

Sto riscontrando un aumento della latenza nelle risposte da Amazon CloudFront. Come posso identificare la causa e ridurre la latenza?

Breve descrizione

Per risolvere i problemi di latenza da CloudFront, identifica innanzitutto quali dei seguenti eventi contribuiscono alla latenza:

  • Il tempo impiegato dalle richieste per passare dal client alle posizioni edge di CloudFront. Ciò include il processo di ricerca del sistema dei nomi di dominio (DNS) e le negoziazioni TCP e SSL/TLS.
  • Il tempo impiegato dalle richieste per passare da CloudFront all'origine. Ciò include il processo di ricerca DNS di origine, le negoziazioni TCP e SSL/TLS con l'origine e il tempo impiegato dall'origine per elaborare e rispondere a un oggetto.

Quindi, segui i passaggi per la risoluzione dei problemi per gli eventi che causano la maggiore latenza.

Risoluzione

Identifica gli eventi che causano latenza da CloudFront:

Per identificare gli eventi che causano una latenza da CloudFront, completa una delle seguenti operazioni:

  • Emetti il seguente comando cURL:
curl -w "DNS_resolution: %{time_namelookup}| TCP_negotiation_time: %{time_connect}| SSL_negotiation_time: %{time_appconnect}| TTFB: %{time_starttransfer}| Total time: %{time_total} \n" -o /dev/null -vsL https://www.example.com

Nota: sostituisci example.com con il tuo nome di dominio CloudFront o con il nome di dominio alternativo (CNAME) e il percorso dell'URL.

  • Controlla quanto tempo ci vuole per ogni fase di una richiesta di rete negli strumenti di sviluppo del tuo browser Web. Ad esempio, in Mozilla Firefox, queste informazioni sono disponibili nella scheda Sincronizzazione.
  • In base al tempo impiegato per ogni evento o richiesta, consulta la relativa sezione Risoluzione in questo articolo.

    Se hai già osservato una latenza in passato, controlla i campi time-taken e time-to-first-byte nei log di accesso di CloudFront. I log di accesso di CloudFront non riportano il tempo impiegato dal client per il processo di ricerca DNS e le negoziazioni TCP e SSL/TLS

    Riduzione della latenza nella risoluzione DNS

    • Aumenta il tempo di memorizzazione nella cache DNS nel DNS lato client.
    • Aumenta il Time to Live (TTL) della cache nel server DNS locale.
    • Aumenta il TTL sul record DNS nel tuo registrar/provider DNS.
    • Se il server DNS del resolver del tuo provider di servizi Internet sta causando latenza, prendi in considerazione l'utilizzo di server DNS pubblici.

    Riduzione della latenza in TCP e SSL/TLS - Tempo di negoziazione

    • Controlla la larghezza di banda della tua rete locale e quella di Internet.
    • Controlla se ci sono interruzioni di rete nel tuo provider di server Internet o router.
    • Ottimizza le prestazioni della tua rete locale tramite il tuo provider di servizi Internet o i percorsi di rete.
    • Conferma che stai utilizzando il resolver DNS corretto che consente al tuo browser Web di trovare la posizione POP corretta più vicina.
    • Per migliorare le prestazioni del sito HTTPS, mantieni corta la catena di certificazione.
    • La latenza può essere causata da un firewall, un proxy o un router locale. Per determinare quale di questi sta causando la latenza, emetti il seguente comando MTR dal tuo sistema. Per ulteriori informazioni, consulta Diagnosi dei problemi di rete con MTR.
    mtr -rw example.com --no-dns
    Nota: sostituisci example.com con il tuo nome di dominio.

    Riduzione della latenza nel tempo impiegato per il primo byte (TTFB) e nel tempo impiegato totale (TTL)

    Se CloudFront restituisce "X-Cache:Hit from cloudfront"

    CloudFront restituisce "X-Cache:Hit from cloudfront" quando le richieste vengono servite dalla posizione edge più vicina. Per ridurre la latenza:

    Se CloudFront restituisce "X-Cache:Miss from cloudfront"

    Se CloudFront restituisce "X-Cache:Miss from cloudfront" quando la richiesta è inviata all'origine. Per ridurre la latenza: