Best practice per la latenza di rete

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

Informazioni sulle prestazioni della latenza

Le prestazioni dell'API Cloud Healthcare sono misurate dalla latenza tra:

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

La latenza comprende tre componenti:

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

La distanza geografica tra te e il server a cui invii le richieste può avere un impatto significativo sulla velocità RTT e sulla velocità effettiva del server. La latenza e la velocità effettiva misurate tra le regioni per le reti Google Cloud sono disponibili in una dashboard in tempo reale. La dashboard mostra le prestazioni che un client può aspettarsi da località diverse quando effettua richieste ai server dell'API Cloud Healthcare.

Misurazione delle prestazioni della latenza

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

  • Metriche di latenza della console Google Cloud: puoi visualizzare la latenza lato server delle richieste dell'API Cloud Healthcare nella console Google Cloud. Per saperne di più, consulta la sezione Metriche di Google Cloud.

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

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

Ridurre la latenza delle richieste

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

Invio delle richieste alla località regionale più vicina in corso...

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

Invio delle 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 l'overhead TCP tipicamente associato a una richiesta. Questo consente di migliorare le prestazioni durante l'invio delle richieste.

Invio di richieste in concomitanza con HTTP/1.1 o HTTP/2

Per ottenere le migliori prestazioni per una serie di richieste, inviale contemporaneamente. Segui queste linee guida per inviare richieste in parallelo:

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

    Ad esempio, per impostare un pool di connessioni con 20 richieste in parallelo utilizzando la libreria client HTTP di Google per Java, il codice include 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 in parallelo utilizzando Node.js, il codice includerà quanto segue:

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