Tablets populares

Para ayudarte a solucionar problemas de rendimiento, Bigtable te permite identificar y observar tablets activas en un clúster. En esta página se describen las tablets populares, se explica cómo obtener una lista de tablets populares y se analizan las situaciones en las que resulta útil identificar las tablets populares. Antes de leer esta página, debes consultar la descripción general de Bigtable.

El nombre del método que usas para obtener una lista de tablets destacadas varía en función del idioma utilizado. Para simplificar, en este documento se hace referencia al método por su nombre de API Admin de Cloud Bigtable RPC, ListHotTablets. Puedes obtener una lista de las tablets más populares con lo siguiente:

Identificar las tablets que se calientan puede ayudarte con las siguientes tareas:

Información sobre las tablets más populares

Una tabla de Bigtable se fragmenta en bloques de filas contiguas, llamados tablets, para ayudar a equilibrar la carga de trabajo de las consultas. Cada tablet está asociada a un nodo y las operaciones en estas filas se realizan en el nodo. Para optimizar el rendimiento, las tablas se dividen o se mueven a otro nodo en función de los patrones de acceso. En función de los patrones de acceso de los usuarios (operaciones de lectura, escritura y análisis), las tablets se reequilibran entre los nodos. Para obtener más información sobre el balanceo de carga, consulta el artículo Cómo optimiza Bigtable tus datos con el tiempo.

Una tablet con temperatura alta es una tablet que muestra un uso excesivo de la CPU del nodo porque utiliza un porcentaje de CPU desproporcionadamente grande en comparación con otras tablets. Este uso desequilibrado de los nodos puede provocar latencia y retrasos en la replicación.

Una de las causas más frecuentes de que las tablets se calienten son los puntos de acceso, que se producen cuando tu aplicación accede con frecuencia a filas que están cerca unas de otras en la tabla. Los puntos de acceso suelen ser el resultado de un diseño de esquema que no está optimizado para distribuir los patrones de acceso de tu aplicación en la tabla. Para saber cómo diseñar las claves de fila para que no se produzcan hotspots, consulta las prácticas recomendadas para el diseño de esquemas.

Para obtener una lista de las tablets más populares, debes tener asignado un rol que tenga el permiso bigtable.viewer.

Salida

El método ListHotTablets devuelve los siguientes datos de un clúster concreto de una instancia.

  • Nombre de la tablet. ID único asignado por Bigtable a la tablet activa. La CLI de gcloud no muestra este campo.
  • Tabla. ID de la tabla asociada a la tablet caliente.
  • Uso de CPU. El uso medio de CPU del nodo asociado a la tablet activa, expresado como porcentaje, durante ese intervalo de un minuto. Este porcentaje es la media de la suma de la CPU de escritura y la CPU de lectura desde la hora de inicio hasta la hora de finalización.
  • Hora de inicio. Hora de inicio del periodo de tablet caliente.
  • Hora de finalización: Hora de finalización del periodo de la tablet caliente.
  • Clave inicial. La primera clave de fila de la tabla activa.
  • Clave final. La última clave de fila de la tablet activa. Se añade el sufijo \000 cuando las claves de inicio y de finalización son las mismas, lo que indica que la tabla abarca una sola fila.

Las claves se ordenan lexicográficamente en una tablet, por lo que cualquier clave entre la clave de inicio y la clave de finalización se incluye en esa tablet activa.

Los puntos de acceso se calculan con una resolución de un minuto, por lo que es posible que una tablet vuelva a aparecer en el resultado. Es decir, una sola tablet puede considerarse caliente durante varios minutos.

De forma predeterminada, ListHotTablets busca en las últimas 24 horas. Para buscar en un intervalo de tiempo específico, indica una hora de inicio y una hora de finalización.

El número máximo de tablets destacadas devueltas es 50. Para cambiarlo, indica un tamaño de página.

El método devuelve una lista vacía si ninguna de las tablets del clúster está activa.

Ejemplo con la CLI gcloud

Antes de copiar este ejemplo, instala la CLI de gcloud.

Para ver una lista de tablets activas de un clúster determinado, ejecuta el comando hot-tablets list en Cloud Shell o en la ventana de terminal local.

  gcloud bigtable hot-tablets list CLUSTER_ID --instance INSTANCE_ID

Haz los cambios siguientes:

  • CLUSTER_ID: identificador permanente del clúster
  • INSTANCE_ID: identificador permanente de la instancia

Si alguna de las tablets del clúster está caliente, la terminal mostrará un resultado similar al siguiente. Las tablets activas de un clúster se muestran en orden descendente según el uso de la CPU.

TABLE      CPU_USAGE  START_TIME                 END_TIME                   START_KEY            END_KEY
test-data  89.3       2021-12-14T01:19:57+00:00  2021-12-14T01:20:57+00:00  user29333893046…    user29333893046…
test-data  22.8       2021-12-14T01:04:59+00:00  2021-12-14T01:06:59+00:00  user29333893046…    user29345657428…
test-data  20.9       2021-12-14T01:18:56+00:00  2021-12-14T01:20:56+00:00  user54519105346…    user545293
test-data  16.5       2021-12-14T01:18:56+00:00  2021-12-14T01:20:56+00:00  user49196524328…    user49206

Casos prácticos de datos de tablets de alta demanda

Identificar las tablets activas de un clúster puede ayudarte a solucionar problemas de rendimiento. Puedes usar el método ListHotTablets junto con otras herramientas de monitorización, como la herramienta de diagnóstico Key Visualizer de Bigtable.

Identificar claves de fila problemáticas

Puedes usar ListHotTablets para identificar claves de fila y rangos de filas específicos. Esto puede proporcionar información sobre los patrones de acceso que podrían estar causando puntos de acceso.

Por ejemplo, supongamos que el esquema de clave de fila de una tabla es [user_id]#[event_timestamp], IDs de usuario y marcas de tiempo separados por un símbolo de almohadilla. Obtener una lista de las tablets que se calientan puede ayudarte a determinar si hay IDs de usuario o marcas de tiempo de eventos específicos que provocan puntos de acceso. Identificar los patrones de acceso te permite tomar medidas adicionales, como rediseñar las claves de las filas o las tablas para distribuir el uso de forma más uniforme en el espacio de claves. En este ejemplo, si los IDs de usuario aumentan de forma monótona y provocan puntos de acceso por ese motivo, puede asignar IDs de usuario en un orden diferente o usar identificadores únicos universales (UUID).

Si las claves de fila de inicio y de finalización son las mismas y se añade el sufijo \000 a la clave de fila de finalización, se crea una tablet de una sola fila. Si esta tablet recibe una cantidad de tráfico desproporcionadamente grande, se producirán puntos de acceso.

Observar los puntos de acceso con una granularidad de un minuto

Puedes usar una lista de tablets populares junto con los mapas de calor de Key Visualizer. Aunque Key Visualizer es una buena herramienta para observar la imagen general de los patrones de acceso al espacio de claves, ListHotTablets proporciona una mayor granularidad.

Después de inspeccionar los mapas de calor en Key Visualizer, puede explorar más a fondo puntos de acceso específicos. Como Key Visualizer se ejecuta durante un periodo de semanas, sus datos de los puntos de acceso se agregan en intervalos de 15 minutos. Además, se pueden combinar varias tablets en el mismo espacio de claves de Key Visualizer.

Una vez que hayas usado Key Visualizer para identificar el intervalo de tiempo en el que se produjeron los hotspots, puedes ejecutar ListHotTablets para obtener una mayor granularidad tanto en el espacio de claves como en el de tiempo. Una mayor granularidad es especialmente útil para el uso periódico. ListHotTablets puede identificar puntos de acceso de corta duración que KeyVisualizer no puede.

Identificar tablas problemáticas en un clúster

Como Key Visualizer funciona a nivel de tabla, no siempre es la mejor opción para solucionar un problema en un clúster que tiene varias tablas. ListHotTablets funciona a nivel de clúster, por lo que puedes usarlo para identificar tablas con un uso elevado de la CPU y acotar el problema.

Siguientes pasos