Identificar dónde se produce la latencia

En esta página se explica cómo identificar y solucionar problemas de latencia en los componentes de Spanner.Para obtener más información sobre los posibles puntos de latencia en una solicitud de Spanner, consulta Puntos de latencia en una solicitud de Spanner.

Puede medir y comparar las latencias de las solicitudes entre los diferentes componentes y la base de datos para determinar qué componente está causando la latencia. Estas latencias incluyen la latencia de extremo a extremo, la latencia de Google Front End (GFE), la latencia de las solicitudes de la API de Spanner y la latencia de las consultas.

  1. En la aplicación cliente que usa tu servicio, confirma que la latencia de extremo a extremo ha aumentado. Consulte las siguientes dimensiones de sus métricas del lado del cliente. Para obtener más información, consulta las descripciones de las métricas del lado del cliente.

    • client_name: el nombre y la versión de la biblioteca de cliente.
    • location: la Google Cloud región en la que se publican las métricas del lado del cliente. Si tu aplicación se implementa fuera deGoogle Cloud, las métricas se publican en la región global.
    • method: el nombre del método RPC (por ejemplo, spanner.commit).
    • status: el estado de la llamada a procedimiento remoto (RPC). Por ejemplo, OK o INTERNAL.

    Agrupa los datos por estas dimensiones para ver si el problema se limita a un cliente, un estado o un método específicos. En el caso de las cargas de trabajo de dos o varias regiones, comprueba si el problema se limita a un cliente o a una región de Spanner concretos.

  2. Comprueba el estado de tu aplicación cliente, especialmente la infraestructura informática del lado del cliente (por ejemplo, la utilización de la máquina virtual, la CPU o la memoria, las conexiones, los descriptores de archivos, etc.).

  3. Consulta la latencia de los componentes de Spanner viendo las métricas del lado del cliente:

    a. Consulta la latencia de extremo a extremo con la métrica spanner.googleapis.com/client/operation_latencies.

    b. Consulta la latencia de Google Front End (GFE) con la métrica spanner.googleapis.com/client/gfe_latencies.

  4. Comprueba las siguientes dimensiones de las métricas de Spanner:

    • database: el nombre de la base de datos de Spanner.
    • method: el nombre del método RPC (por ejemplo, spanner.commit).
    • status: el estado de la llamada a procedimiento remoto (RPC). Por ejemplo, OK o INTERNAL.

    Agrupa los datos por estas dimensiones para ver si el problema se limita a una base de datos, un estado o un método concretos. En el caso de las cargas de trabajo de dos regiones o multirregionales, comprueba si el problema se limita a una región específica.

  5. Comprueba la latencia de las solicitudes de la API de Spanner mediante la métrica spanner.googleapis.com/api/request_latencies. Para obtener más información, consulta Métricas de Spanner.

    Si tienes una latencia de extremo a extremo alta, pero una latencia de GFE baja y una latencia de solicitud de API de Spanner baja, puede que haya un problema con el código de la aplicación. También podría indicar un problema de red entre el cliente y el GFE regional. Si tu aplicación tiene un problema de rendimiento que provoca que algunas rutas de código sean lentas, la latencia de extremo a extremo de cada solicitud de API podría aumentar. También puede haber un problema en la infraestructura informática del cliente que no se haya detectado en el paso anterior.

    Si tienes una latencia alta de GFE, pero una latencia baja de la solicitud de la API de Spanner, puede deberse a uno de los siguientes motivos:

    • Acceder a una base de datos de otra región. Esta acción puede provocar una latencia alta de GFE y una latencia baja de las solicitudes a la API de Spanner. Por ejemplo, el tráfico de un cliente de la región us-east1 que tiene una instancia en la región us-central1 puede tener una latencia alta de GFE, pero una latencia de solicitud de API de Spanner más baja.

    • Hay un problema en la capa de GFE. Consulta el Google Cloud Panel de Estado para ver si hay problemas de red en tu zona. Si no hay ningún problema, abre un caso de asistencia e incluye esta información para que los ingenieros puedan ayudarte a solucionar los problemas de GFE.

  6. Comprueba la utilización de la CPU de la instancia. Si la utilización de la CPU de la instancia supera el nivel recomendado, debes añadir más nodos manualmente o configurar el escalado automático. Para obtener más información, consulta el resumen del autoescalado.

  7. Observa y soluciona los posibles puntos de acceso o patrones de acceso desequilibrados con Key Visualizer e intenta revertir los cambios en el código de la aplicación que estén muy relacionados con el periodo del problema.

  8. Comprueba si se han producido cambios en los patrones de tráfico.

  9. Consulta Estadísticas de consultas y Estadísticas de transacciones para ver si hay algún cuello de botella en el rendimiento de las consultas o las transacciones.

  10. Sigue los procedimientos de Consultas activas más antiguas para ver las consultas costosas que puedan provocar un cuello de botella en el rendimiento y cancelar las consultas según sea necesario.

  11. Sigue los procedimientos de las secciones de solución de problemas de los temas siguientes para solucionar el problema con las herramientas de introspección de Spanner:

Siguientes pasos