tablets sobrecargadas
Para ayudarte a solucionar problemas de rendimiento, Bigtable permite identificar y observar tablets sobrecargadas en un clúster. En esta página, se describen las tablets sobrecargadas, se explica cómo obtener una lista de tablets sobrecargadas y se analizan las situaciones en las que identificarlas es útil. Antes de leer esta página, debes leer la descripción general de Bigtable.
El nombre del método que usas para obtener una lista de tablets sobrecargadas varía según el lenguaje que se use. Por cuestiones prácticas, en este documento se hace referencia al método por su nombre de API de RPC de Cloud Bigtable Admin, ListHotTablets
. Puedes obtener una lista de tablets sobrecargadas con el siguiente comando:
La identificación de tablets sobrecargadas puede ayudarte a realizar las siguientes tareas:
- Identifica claves de filas problemáticas
- Observa hotspots con un nivel de detalle a nivel de minutos
- Identifica tablas problemáticas en un clúster
Comprende las tablets sobrecargadas
Una tabla de Bigtable se fragmenta en bloques de filas contiguas, llamados tablets, que ayudan a equilibrar la carga de trabajo de las consultas. Cada tablet se asocia con un nodo, y las operaciones de estas filas se realizan en el nodo. Para optimizar el rendimiento, los tablets se dividen o se mueven a un nodo diferente según los patrones de acceso. Según los patrones de acceso de los usuarios (operaciones de lectura, escritura y análisis), las tablets se vuelven a equilibrar en los nodos. Para obtener más información sobre el balanceo de cargas, consulta Cómo Bigtable optimiza tus datos con el tiempo.
Una tablet activa es una tablet que muestra un uso excesivo de la CPU del nodo debido a que utiliza un porcentaje de CPU desproporcionadamente grande en comparación con otras tablets. Este uso de nodos desequilibrado puede causar retrasos en la latencia y la replicación.
Una de las causas más frecuentes de las tablets sobrecargadas son los hotspots, que ocurren cuando la aplicación accede con frecuencia a las filas que están cerca en la tabla. Los hotspots 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 aprender a diseñar tus claves de fila de modo que no se produzcan hotspots, consulta Prácticas recomendadas para el diseño de esquemas.
Para obtener una lista de tablets sobrecargadas, debes tener asignada una función que tenga el permiso bigtable.viewer
.
Salida
El método ListHotTablets
muestra los siguientes datos para un clúster determinado en una instancia.
- Nombre de la tablet. El ID único que asigna Bigtable a la tablet activa. La CLI de gcloud no muestra este campo.
- Tabla. ID de la tabla asociada a la tablet activa.
- Uso de CPU. El uso de CPU promedio del nodo asociado con la tablet activa, expresado como un porcentaje, durante ese intervalo de un minuto. Este porcentaje es el promedio de la suma de las CPU de escritura y CPU de lectura desde la hora de inicio hasta la hora de finalización.
- Hora de inicio. Es la hora de inicio del período de la tablet activa.
- Hora de finalización. Hora de finalización del período de la tablet activa.
- Clave de inicio. La primera clave de fila en la tablet activa.
- Clave de finalización. La última clave de fila de la tablet activa. Se agrega un sufijo de
\000
cuando las claves de inicio y finalización son las mismas, lo que indica que la tablet abarca una sola fila.
Las claves se ordenan lexicográficamente dentro de una tablet, por lo que cualquier clave entre la clave de inicio y la clave final se encuentra en esa tablet.
Los hotspots se calculan en una resolución de un minuto y una tablet puede volver a aparecer en el resultado. En otras palabras, una tablet se puede considerar activa durante varios minutos.
De forma predeterminada, ListHotTablets
busca en las últimas 24 horas. Para buscar dentro de un intervalo de tiempo específico, proporciona una hora de inicio y de finalización.
La cantidad máxima de tablets mostradas es de 50. Para cambiar esto, proporciona un tamaño de página.
El método muestra una lista vacía si ninguno de las tablets del clúster están activas.
Ejemplo en el que se usa la CLI de gcloud
Antes de copiar este ejemplo, instala la CLI de gcloud
.
Para ver una lista de tablets sobrecargadas de un clúster determinado, ejecuta el comando hot-tablets list
en Cloud Shell o en la ventana de la terminal local.
gcloud bigtable hot-tablets list CLUSTER_ID --instance INSTANCE_ID
Reemplaza lo siguiente:
CLUSTER_ID
: el identificador permanente del clústerINSTANCE_ID
: el identificador permanente de la instancia.
Si cualquiera de los tablets del clúster está caliente, la terminal muestra un resultado similar al siguiente. Las tablets sobrecargadas en un clúster se muestran en orden descendente según el uso de 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 sobrecargadas
Identificar las tablets sobrecargadas en un clúster puede ayudarte a solucionar problemas de rendimiento. Puedes usar el método ListHotTablets
junto con otras herramientas de supervisión, como la herramienta de diagnóstico de Key Visualizer para Bigtable.
Identifica claves de filas problemáticas
Puedes usar ListHotTablets
para identificar claves y rangos de filas específicos. Esto puede proporcionar observabilidad en los patrones de acceso que podrían estar causando hotspots.
Por ejemplo, supongamos que el esquema de clave de fila de una tabla es [user_id]#[event_timestamp]
, los ID de usuario y las marcas de tiempo separados por un símbolo de hash. Obtener una lista de tablets sobrecargadas puede ayudarte a determinar si los ID de usuario específicos o las marcas de tiempo de eventos causan hotspots. Identificar los patrones de acceso te permite realizar acciones adicionales, como rediseñar claves o filas de filas a fin de distribuir el uso de manera más uniforme en el espacio de claves. En este ejemplo, si los ID de usuario aumentan monótonamente y causan hotspots por ese motivo, puedes asignarlos en un orden diferente o usar identificadores únicos a nivel universal (UUID).
Cuando las claves de fila de inicio y finalización son las mismas, y la clave de fila de finalización se agrega con un sufijo \000
, se crea una tablet de una sola fila. Cuando esta tablet recibe una cantidad desproporcionada de tráfico, se generan hotspots.
Observa hotspots con un nivel de detalle a nivel de minutos
Puedes usar una lista de tablets sobrecargadas con los mapas de calor de Key Visualizer.
Si bien Key Visualizer es una buena herramienta para observar el panorama más amplio de los patrones de acceso a espacios de claves, ListHotTablets
proporciona un mayor nivel de detalle.
Después de inspeccionar los mapas de calor en Key Visualizer, puedes explorar hotspots específicos. Debido a que Key Visualizer se ejecuta durante un período de semanas, sus datos para los hotspots se agregan en intervalos de 15 minutos. Además, varias tablets se pueden combinar en el mismo espacio de claves de Key Visualizer.
Después de usar Key Visualizer a fin de identificar el intervalo de tiempo en el que se produjeron los hotspots, puedes ejecutar ListHotTablets
para obtener un mayor nivel de detalle en la clave y el espacio de tiempo. El nivel de detalle mayor es particularmente útil para el uso periódico.
ListHotTablets
puede identificar hotspots de corta duración que KeyVisualizer no puede.
Identifica tablas problemáticas en un clúster
Debido a que 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
opera a nivel de clúster, por lo que puedes usarlo para identificar tablas con alto uso de CPU y reducir el problema.
¿Qué sigue?
- Comprende el rendimiento de Bigtable.
- Obtén más información sobre Bigtable Monitoring.
- Lee un instructivo sobre cómo realizar comparativas de rendimiento.