Prácticas recomendadas para reducir la latencia de la red

En este documento se enumeran las prácticas recomendadas para usar la API Cloud Healthcare. Las directrices de esta página se han diseñado para que el servicio sea más eficiente y preciso, y para que los tiempos de respuesta sean óptimos.

Interpretar el rendimiento de la latencia

El rendimiento de la API Cloud Healthcare se mide por la latencia entre los siguientes elementos:

  1. Cuando envías una solicitud a la API Cloud Healthcare.
  2. Cuando recibas una respuesta completa a la solicitud.

La latencia consta de tres componentes:

  • Tiempo de ida y vuelta (RTT)
  • Latencia de procesamiento del servidor
  • Rendimiento del servidor

La distancia geográfica entre tú y el servidor al que envías solicitudes puede influir significativamente en el RTT y en el rendimiento del servidor. La latencia y el rendimiento medidos entre regiones de las redes de Google Cloud se pueden consultar en un panel de control en directo. El panel de control muestra el rendimiento que puede esperar un cliente de diferentes ubicaciones al enviar solicitudes a los servidores de la API Cloud Healthcare.

Medir el rendimiento de la latencia

Las siguientes herramientas y paneles de control ofrecen formas de medir el rendimiento de las solicitudes a los servidores de la API Cloud Healthcare y desde ellos:

  • Google Cloud Métricas de latencia de la consola: puedes ver la latencia del lado del servidor de las solicitudes a la API Cloud Healthcare en la Google Cloud consola. Para obtener más información, consulta las métricas deGoogle Cloud .

  • Métricas personalizadas de Cloud Logging: puedes crear métricas de distribución con Logging. Las métricas de distribución te permiten configurar y comprender la latencia de extremo a extremo de tus aplicaciones. También puede monitorizar y generar informes sobre cualquier medición de latencia definida de forma personalizada.

  • Panel de red de Chrome: puede inspeccionar la actividad de red en Chrome DevTools para ver los detalles del rendimiento de una solicitud HTTP enviada desde un navegador.

Reducir la latencia de las solicitudes

En esta sección se describen varios métodos para reducir la latencia de las solicitudes enviadas a la API Cloud Healthcare.

Enviar solicitudes a la ubicación regional más cercana

Para obtener el mejor rendimiento de RTT y de resultados del servidor, envíe solicitudes del cliente a la ubicación regional de la API de Cloud Healthcare más cercana. Consulta la lista de regiones disponibles en Regiones.

Enviar solicitudes de preparación

Cuando un cliente envía solicitudes a un servidor de la API Cloud Healthcare por primera vez durante una sesión, el cliente realiza negociaciones TCP con el servidor para establecer conexiones para las solicitudes HTTP. Las solicitudes posteriores pueden seguir usando estas conexiones establecidas, lo que permite que el cliente evite la sobrecarga de TCP que suele asociarse a una solicitud. Esto se traduce en un mejor rendimiento al enviar solicitudes.

Enviar solicitudes simultáneamente con HTTP/1.1 o HTTP/2

Para obtener el mejor rendimiento en una serie de solicitudes, envíalas simultáneamente. Sigue estas directrices cuando envíes solicitudes simultáneas:

  • Cuando envíe solicitudes simultáneas, intente encontrar el número ideal de solicitudes simultáneas. El número ideal depende de varios factores, como las funciones de tu hardware y tu red, y el número de solicitudes que se envían. Haz pruebas para encontrar el número ideal.
  • Envía solicitudes desde el cliente mediante HTTP/2 siempre que sea posible. HTTP/2 ofrece un mejor rendimiento que HTTP/1.1 porque solo requiere una conexión TCP al enviar varias solicitudes de forma secuencial o simultánea. Como resultado, puedes evitar la sobrecarga de la negociación TCP.
  • Si no es posible usar HTTP/2, usa HTTP/1.1 con una conexión persistente. Puedes evitar la sobrecarga de la negociación TCP si ya se han enviado solicitudes de calentamiento. Para usar una conexión persistente, es posible que tengas que gestionar una conexión optimizada con un grupo de conexiones para tu biblioteca HTTP.

    Por ejemplo, para definir un grupo de conexiones con 20 solicitudes simultáneas mediante la biblioteca de cliente HTTP de Google para Java, tu código incluiría lo siguiente:

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

    Para definir un grupo de conexiones con 20 solicitudes simultáneas con Node.js, tu código incluiría lo siguiente:

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