Best practice per la latenza della rete

Questo documento elenca le best practice per l'utilizzo dell'API Cloud Healthcare. Le linee guida riportate in questa pagina sono progettate per garantire maggiore efficienza, precisione e tempi di risposta ottimali del servizio.

Informazioni sul rendimento in termini di latenza

Le prestazioni dell'API Cloud Healthcare vengono misurate in base alla latenza tra:

  1. Quando invii una richiesta all'API Cloud Healthcare.
  2. Quando ricevi una risposta completa alla richiesta.

La latenza è composta da tre componenti:

  • Tempo di round trip (RTT)
  • Latenza di elaborazione del server
  • Velocità in uscita del server

La distanza geografica tra te e il server a cui invii richieste può avere un impatto significativo sul RTT e sul throughput del server. La latenza e il throughput interregionali misurati per le reti Google Cloud sono disponibili in una dashboard in tempo reale. La dashboard mostra il rendimento che un client può aspettarsi da diverse località quando invia richieste ai server dell'API Cloud Healthcare.

Misurare il rendimento in termini di latenza

I seguenti strumenti e dashboard forniscono modi per misurare il rendimento delle richieste verso e da i server dell'API Cloud Healthcare:

  • Metriche sulla latenza della console Google Cloud: puoi visualizzare la latenza lato server delle richieste dell'API Cloud Healthcare nella console Google Cloud. Per ulteriori informazioni, consulta le metriche di Google Cloud.

  • Metriche personalizzate di Cloud Logging: puoi creare metriche di distribuzione utilizzando Logging. Le metriche di distribuzione ti consentono di configurare e comprendere la latenza end-to-end nelle tue applicazioni. Puoi anche monitorare e generare report su qualsiasi misurazione della latenza definita in base alle tue esigenze.

  • Pannello di rete di Chrome: puoi esaminare l'attività di rete in Chrome DevTools per visualizzare i dettagli sulle prestazioni di una richiesta HTTP inviata da un browser.

Riduzione della latenza delle richieste

Questa sezione descrive vari metodi per ridurre la latenza delle richieste inviate all'API Cloud Healthcare.

Invio delle richieste alla sede regionale più vicina

Per ottenere le migliori prestazioni in termini di RTT e velocità in bit del server, invia le richieste dal client alla posizione regionale dell'API Cloud Healthcare più vicina. Consulta Regioni per un elenco delle regioni disponibili.

Invio di richieste di warmup

Quando un client invia richieste a un server API Cloud Healthcare per la prima volta durante una sessione, esegue handshake TCP con il server per stabilire connessioni per le richieste HTTP. Eventuali richieste successive possono continuare a utilizzare queste connessioni stabilite, consentendo al client di evitare il sovraccarico TCP tipicamente associato a una richiesta. Ciò comporta un miglioramento delle prestazioni durante l'invio delle richieste.

Invio di richieste contemporaneamente con HTTP/1.1 o HTTP/2

Per ottenere le migliori prestazioni per una serie di richieste, inviale contemporaneamente. Segui queste indicazioni per inviare richieste simultanee:

  • Quando invii richieste in parallelo, cerca di trovare un numero ideale di richieste in parallelo. Il numero ideale dipende da diversi fattori, tra cui le funzionalità dell'hardware e della rete e il numero di richieste inviate. Esegui test per trovare il numero ideale.
  • Invia le richieste dal client utilizzando HTTP/2, se possibile. HTTP/2 offre prestazioni migliori rispetto a HTTP/1.1 perché richiede una sola connessione TCP quando vengono inviate più richieste in sequenza o contemporaneamente. Di conseguenza, puoi evitare il sovraccarico della stretta di mano TCP.
  • Se non è possibile utilizzare HTTP/2, utilizza HTTP/1.1 con una connessione permanente. Puoi evitare il sovraccarico della stretta di mano TCP se sono già state inviate richieste di acclimatamento. L'utilizzo di una connessione permanente potrebbe richiedere di gestire una connessione ottimizzata con un pool di connessioni per la libreria HTTP.

    Ad esempio, per impostare un pool di connessioni con 20 richieste simultanee utilizzando la libreria client HTTP di Google per Java, il codice includerà quanto segue:

    PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
    // Support 20 concurrent requests.
    cm.setDefaultMaxPerRoute(20);
    cm.setMaxTotal(100);
    HTTP_CLIENT = HttpClients.custom().setConnectionManager(cm).build();
    

    Per impostare un pool di connessioni con 20 richieste simultanee utilizzando Node.js, il codice includerebbe quanto segue:

    require('http').globalAgent.maxSockets = 20