En este documento, se describe cómo usar el panel de estadísticas de hotspots para detectar hotspots en tu base de datos de Spanner.
Descripción general de las estadísticas de hotspot
Los hotspots causan latencia en tu base de datos de Spanner. El panel de estadísticas de hotspots te ayuda a detectar las divisiones afectadas por hotspots. Sigue estos pasos para determinar si los hotspots causan latencia y, de ser así, cómo resolver el problema:
- Abre el panel.
- Determina si los hotspots necesitan tu intervención.
- Identifica divisiones con actividad intensa problemáticas.
Las estadísticas de hotspots están disponibles en configuraciones de una sola región, multirregionales y birregionales.
Precios
No hay costos adicionales por las estadísticas de hotspots.
Retención de datos
Las políticas de retención de datos para los gráficos de estadísticas de Hotspot y la tabla de divisiones de TopN se basan en las tablas de SPANNER_SYS.SPLIT_STATS_TOP_* subyacentes. Para
conocer las políticas de retención específicas, consulta
Retención de datos de estadísticas de división activa.
Roles obligatorios
Es posible que necesites diferentes roles y permisos de Identity and Access Management (IAM), según si eres un usuario de IAM o un usuario de control de acceso detallado.
Usuario de IAM
Para obtener los permisos que necesitas para ver la página Estadísticas de hotspots, pídele a tu administrador que te otorgue los siguientes roles de IAM en la instancia:
-
Todos:
- Visualizador de Cloud Spanner (
roles/spanner.viewer) - Lector de base de datos de Cloud Spanner (
roles/spanner.databaseReader)
- Visualizador de Cloud Spanner (
Se requieren los siguientes permisos en el rol de lector de bases de datos de Cloud Spanner (
roles/spanner.databaseReader) para ver la página Estadísticas de hotspots:
spanner.databases.beginReadOnlyTransactionspanner.databases.selectspanner.sessions.create
Usuario con control de acceso detallado
Si eres un usuario del control de acceso detallado, asegúrate de lo siguiente:
- Tener el rol de visualizador de Cloud Spanner
(
roles/spanner.viewer) - Tener privilegios de control de acceso detallado y que se les otorgue el rol del sistema
spanner_sys_readero uno de sus roles de miembro. - Selecciona el rol
spanner_sys_readero un rol de miembro como tu rol actual del sistema en la página Descripción general de la base de datos.
Para obtener más información, consulta la descripción general del control de acceso detallado y los roles del sistema de control de acceso detallado.
Abre el panel de Estadísticas de hotspots
En el panel Estadísticas de hotspots, se muestra el porcentaje máximo de uso de CPU de la división. Esta métrica es un porcentaje abstracto de 0 a 100 que refleja la cantidad de CPU que se usa cuando se accede a las filas dentro de una división.
Para ver el panel Estadísticas de hotspots de una base de datos, haz lo siguiente:
En la consola de Google Cloud , abre la página Spanner.
Elige una instancia de la lista.
En el menú de navegación, haz clic en la pestaña Estadísticas de hotspots.
En el campo base de datos, selecciona una base de datos de la lista. En el panel, se muestra la puntuación máxima de uso de CPU de división para la base de datos.
El panel incluye los siguientes elementos:
- Gráfico de Puntuación máxima de uso de CPU de división: Una puntuación de uso de CPU más alta (como cerca de 100) indica que la división es activa y es muy probable que cause un hotspot en el servidor en comparación con las puntuaciones más bajas.
- Campo de base de datos: Filtra la información de las divisiones activas en una base de datos específica o en todas las bases de datos.
- Filtro de período: Filtra el uso de CPU de las divisiones máximas en incrementos de 1 minuto hasta un total de 6 horas.
- Tabla de divisiones de Top-N: Muestra la lista de las divisiones principales ordenadas por puntuaciones de uso de CPU de división.

Información sobre los datos de la tabla de divisiones de TopN:
La tabla de divisiones de TopN propaga datos de las tablas de
SPANNER_SYS.SPLIT_STATS_TOP_* subyacentes según el período que selecciones. Para
obtener más información, consulta
Retención de datos de estadísticas de división activa.
Interpreta filas de tablas 10MINUTE o HOUR:
Las filas que provienen de SPANNER_SYS.SPLIT_STATS_TOP_10MINUTE o SPANNER_SYS.SPLIT_STATS_TOP_HOUR
representan datos agregados en sus intervalos respectivos. Como se describe en
Agregación de eventos de tabla,
el CPU_USAGE_SCORE en estas filas es la puntuación máxima que se observa en cualquier
subintervalo subyacente de 1 minuto, y UNSPLITTABLE_REASONS es una unión de
motivos.
Determinar si las zonas de uso intensivo necesitan intervención
Si ves un aumento repentino o una elevación en el gráfico que corresponde a la latencia general y una puntuación de uso de CPU de división máxima alta persistente, es posible que debas investigar más.
Revisa el gráfico para explorar estas preguntas:
¿Qué base de datos experimenta la degradación de la latencia? Selecciona bases de datos diferentes en la lista Bases de datos para encontrar las bases de datos con la latencia más alta. Para averiguar qué base de datos tiene la carga más alta, también puedes revisar el gráfico Latencia de las bases de datos en la consola de Google Cloud .

¿La latencia es alta? ¿La latencia es alta en comparación con la latencia esperada para la carga de trabajo? ¿El gráfico aumenta o se incrementa con el tiempo? Si no ves una latencia alta, los hotspots no son un problema.
¿La puntuación máxima de uso de CPU de división es del 100%? ¿El gráfico aumenta o se incrementa con el tiempo? Si no ves porcentajes de uso de CPU divididos en picos del 100% de forma persistente durante al menos 10 minutos, es posible que los hotspots no sean un problema. Si el porcentaje máximo de uso de CPU dividido es alto durante más de 10 minutos, es posible que desees investigar más para ver si la base de datos tiene niveles de latencia más altos de lo esperado.
Si ves porcentajes de uso de CPU de división máxima del 100% durante más de 10 minutos, es posible que los hotspots requieran tu intervención. A continuación, puedes continuar con el proceso de depuración identificando las divisiones sobrecargadas en tu base de datos.
Identifica divisiones activas problemáticas
Para identificar una división potencialmente problemática que tenga hotspots, consulta la sección TopN splits en la consola de Google Cloud , como se muestra a continuación.

La tabla Divisiones de TopN proporciona una descripción general de las divisiones que podrían tener mucha actividad durante el período elegido, ordenadas de la más reciente a la más antigua. La cantidad de divisiones de TopN se limita a 100.
Para los gráficos, Spanner recupera datos de la tabla de estadísticas de divisiones de TopN, con un nivel de detalle de un minuto. El valor de cada dato en los gráficos representa el valor promedio en un intervalo de un minuto.
En la tabla, se muestran las siguientes propiedades:
- Fin del intervalo: Es la fecha y hora en que finaliza el uso máximo de CPU.
- Inicio de la división: Es la clave inicial del rango de filas en la división. Si el inicio de la división es <begin>, indica el inicio del rango de claves de la base de datos.
- Límite de división: Es la clave de límite del rango de filas en la división. Si la clave de límite es <end>, indica el final del rango de claves de la base de datos.
- Puntuación de uso de CPU dividida: Es una puntuación abstracta de entre 0 y 100 que refleja la cantidad de CPU que se usa en los accesos a las filas dentro de la división en un solo servidor. Usa la puntuación de uso de la CPU para evaluar si tienes hotspots.
- Tablas afectadas: Son las tablas cuyas filas podrían estar en la división.
- Motivos de no división: Es un array de motivos por los que Spanner
no puede dividir más una división activa. La presencia de valores aquí indica que
la división basada en la carga no puede mitigar el hotspot por los motivos
indicados. Para obtener más información, consulta
Tipos de
UNSPLITTABLE_REASONS.
Analiza los motivos de no división
La tabla TopN splits te permite desglosar qué divisiones específicas se ven afectadas por estos motivos en momentos particulares, como se muestra en la columna Unsplittable reasons.
Ejemplo de flujo de trabajo de diagnóstico
Este es un flujo de trabajo típico para depurar hotspots con el panel:
- Observa el problema de rendimiento: Observa un aumento de la latencia o errores en tu aplicación.
- Abre las estadísticas de hotspots: Navega al panel de estadísticas de hotspots en la consola de Google Cloud para la base de datos de Spanner correspondiente. Selecciona el período correspondiente al problema.
- Examina el gráfico:
- Verifica el gráfico Puntuación máxima de uso de CPU de división para ver si hay valores altos sostenidos, por ejemplo, >50%, en especial si se acercan al 100% y duran al menos 10 minutos.
- Identifica las divisiones afectadas y correlaciona los hallazgos: Si el uso de CPU es alto,
ve a la tabla Divisiones de Top-N. Filtra o ordena para encontrar las divisiones con
la puntuación de uso de CPU de división más alta durante el tiempo de impacto. Examina
la columna
UNSPLITTABLE_REASONSpara estas divisiones principales:- Puntuación alta de uso de CPU de división y motivos por los que no se puede dividir: Esta es una
indicación clara de que el problema de rendimiento está relacionado con hotspots que
Spanner no puede resolver automáticamente. El tipo de motivo,
como
HOT_ROWoMOVING_HOT_SPOT, proporciona una pista crucial. - Puntuación alta de uso de CPU de división y sin motivos de no división: Es posible que el hotspot sea nuevo y que Spanner aún esté en proceso de división. Como alternativa, el problema podría estar respondiendo a cambios en la carga de trabajo, lo que no requiere ninguna acción de tu parte.
- Puntuación alta de uso de CPU de división y motivos por los que no se puede dividir: Esta es una
indicación clara de que el problema de rendimiento está relacionado con hotspots que
Spanner no puede resolver automáticamente. El tipo de motivo,
como
- Comprende los motivos: Toma nota de los códigos específicos en el array
UNSPLITTABLE_REASONS. - Mitiga: Según los motivos identificados, consulta los
tipos de
UNSPLITTABLE_REASONSpara obtener explicaciones detalladas y estrategias de mitigación recomendadas, que suelen implicar cambios en el diseño del esquema o ajustes en la carga de trabajo.
¿Qué sigue?
- Más información sobre las estadísticas de puntos de acceso divididos