Solución de problemas de administración de capacidad en Amazon Keyspaces - Amazon Keyspaces (para Apache Cassandra)

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Solución de problemas de administración de capacidad en Amazon Keyspaces

¿Tiene problemas con la capacidad sin servidor? A continuación se indican algunos problemas comunes y la forma de resolverlos.

Errores de capacidad sin servidor

En esta sección se describe la forma de reconocer los errores relacionados con la administración de capacidad sin servidor y cómo resolverlos. Por ejemplo, podría observar eventos de capacidad insuficiente cuando su aplicación excede su capacidad de rendimiento aprovisionada.

Dado que Apache Cassandra es un software basado en clústeres que está diseñado para ejecutarse en una flota de nodos, no dispone de mensajes de excepción relacionados con características sin servidor como la capacidad de rendimiento. La mayoría de los controladores solo entienden los códigos de error que están disponibles en Apache Cassandra, por lo que Amazon Keyspaces utiliza ese mismo conjunto de códigos de error para mantener la compatibilidad.

Para asignar los errores de Cassandra a los eventos de capacidad subyacentes, puede utilizar Amazon CloudWatch para supervisar las métricas relevantes de Amazon Keyspaces. Los eventos de capacidad insuficiente que dan lugar a errores del lado del cliente se pueden clasificar en estos tres grupos en función del recurso que esté causando el evento:

  • Tabla: si elige el modo de capacidad Aprovisionada para una tabla y su aplicación supera el rendimiento aprovisionado, es posible que observe errores de capacidad insuficiente. Para obtener más información, consulte Modos de capacidad de lectura/escritura en Amazon Keyspaces.

  • Partición: es posible que experimente eventos de capacidad insuficiente si el tráfico en una partición determinada supera las 3000 RCU o las 1000 WCU. Como práctica recomendada, sugerimos distribuir el tráfico de forma uniforme entre las particiones. Para obtener más información, consulte Modelado de datos en Amazon Keyspaces (para Apache Cassandra).

  • Conexión: es posible que experimente un rendimiento insuficiente si supera la cuota para el número máximo de operaciones por segundo, por conexión. Para aumentar el rendimiento, puede aumentar el número de conexiones predeterminadas al configurar la conexión con el controlador. Para obtener más información, consulte Ajuste de rendimiento de las consultas CQL y Equilibrio de carga.

Para determinar qué recurso está causando el evento de capacidad insuficiente que devuelve el error del lado del cliente, puede consultar el panel de control en la consola de Amazon Keyspaces. De forma predeterminada, la consola proporciona una vista agregada de las CloudWatch métricas más comunes relacionadas con la capacidad y el tráfico en la sección Capacidad y métricas relacionadas de la pestaña Capacidad de la tabla.

Para crear tu propio panel de control con Amazon CloudWatch, consulta las siguientes métricas de Amazon Keyspaces.

  • PerConnectionRequestRateExceeded: solicitudes a Amazon Keyspaces que superan la cuota de tasa de solicitudes por conexión. Cada conexión de cliente a Amazon Keyspaces puede admitir hasta 3000 solicitudes CQL por segundo. Puede realizar más de 3000 solicitudes por segundo creando varias conexiones.

  • ReadThrottleEvents: solicitudes a Amazon Keyspaces que superan la capacidad de lectura de una tabla.

  • StoragePartitionThroughputCapacityExceeded: solicitudes a una partición de almacenamiento de Amazon Keyspaces que superan la capacidad de rendimiento de la partición. Las particiones de almacenamiento de Amazon Keyspaces pueden admitir hasta 1000 WCU/WRU por segundo y 3000 RCU/RRU por segundo. Para mitigar estas excepciones, le recomendamos que revise su modelo de datos para distribuir el tráfico de lectura/escritura entre más particiones.

  • WriteThrottleEvents: solicitudes a Amazon Keyspaces que superan la capacidad de escritura de una tabla.

Para obtener más información CloudWatch, consulteSupervisión de Amazon Keyspaces con Amazon CloudWatch. Para obtener una lista de todas las CloudWatch métricas disponibles para Amazon Keyspaces, consulte. Métricas y dimensiones de Amazon Keyspaces

Estoy recibiendo errores de capacidad insuficiente NoHostAvailable desde mi controlador de cliente

Está viendo excepciones Read_Timeout o Write_Timeout para una tabla.

Intentar escribir o leer repetidamente en una tabla de Amazon Keyspaces con capacidad insuficiente puede dar lugar a errores del lado del cliente específicos del controlador.

Úselo CloudWatch para monitorear las métricas de rendimiento aprovisionadas y reales, así como los eventos de capacidad insuficiente para la tabla. Por ejemplo, una solicitud de lectura que no tenga suficiente capacidad de rendimiento falla con una excepción Read_Timeout y se contabiliza en la métrica ReadThrottleEvents. Una solicitud de escritura que no tenga suficiente capacidad de rendimiento falla con una excepción Write_Timeout y se contabiliza en la métrica WriteThrottleEvents. Para obtener más información sobre estas métricas, consulte Métricas y dimensiones de Amazon Keyspaces.

Para resolver estos problemas, considere una de las siguientes opciones.

Si necesita aumentar la cuota de capacidad predeterminada para su cuenta, consulte Cuotas para Amazon Keyspaces (para Apache Cassandra).

Está viendo errores relacionados con exceso de capacidad de la partición.

La limitación de partición puede producirse cuando se supera temporalmente la capacidad de la partición (que podría gestionarse automáticamente mediante capacidad adaptativa o capacidad bajo demanda). Este error también podría apuntar a un problema con su modelo de datos. Las particiones de almacenamiento de Amazon Keyspaces pueden admitir hasta 1000 WCU/WRU por segundo y 3000 RCU/RRU por segundo. Para obtener más información sobre cómo mejorar su modelo de datos para distribuir el tráfico de lectura/escritura entre más particiones, consulte Modelado de datos en Amazon Keyspaces (para Apache Cassandra).

Las excepciones Write_Timeout también podrían deberse a una tasa elevada de operaciones de escritura concurrentes que incluyan datos estáticos y no estáticos en la misma partición lógica. Si se espera que el tráfico ejecute varias operaciones de escritura concurrentes que incluyan datos estáticos y no estáticos dentro de la misma partición lógica, recomendamos escribir los datos estáticos y no estáticos por separado. Escribir los datos por separado también ayuda a optimizar los costos de rendimiento.

Está viendo errores relacionados con una tasa de solicitudes de conexión excedida.

La limitación de conexión podría deberse a una de las siguientes causas.

  • Es posible que no tenga suficientes conexiones configuradas por sesión.

  • Es posible que esté recibiendo menos conexiones que pares disponibles, dado que no tiene configurados correctamente los permisos del punto de conexión de VPC. Para obtener más información sobre las políticas de punto de conexión de VPC, consulte Uso de puntos de conexión de VPC de interfaz para Amazon Keyspaces.

  • Si utiliza un controlador 4.x, compruebe si la validación del nombre de host está habilitada. El controlador habilita la verificación del nombre de host TLS de forma predeterminada. Esta configuración hace que Amazon Keyspaces aparezca como un clúster de nodo único ante el controlador. Le recomendamos que desactive la verificación de nombre de host.

Le recomendamos que siga estas prácticas recomendadas para garantizar la optimización de sus conexiones y su rendimiento:

  • Configure el ajuste de rendimiento de las consultas CQL.

    Amazon Keyspaces admite hasta 3000 consultas CQL por conexión TCP por segundo, pero no hay límite en el número de conexiones que un controlador puede establecer.

    La mayoría de los controladores de código abierto para Cassandra establecen un grupo de conexiones a Cassandra y equilibran la carga de consultas sobre ese grupo de conexiones. Amazon Keyspaces expone 9 direcciones IP homólogas a los conductores. El comportamiento predeterminado de la mayoría de los controladores es establecer una única conexión con cada dirección IP homóloga. Por lo tanto, el rendimiento máximo de consultas CQL de un controlador que utilice la configuración predeterminada será de 27 000 consultas CQL por segundo.

    Para aumentar esta cifra, le recomendamos que aumente el número de conexiones por dirección IP que su controlador mantiene en su grupo de conexiones. Por ejemplo, si establece el máximo de conexiones por dirección IP en 2, duplicará el rendimiento máximo de su controlador a 54 000 consultas CQL por segundo.

  • Optimice sus conexiones de nodo único.

    De forma predeterminada, la mayoría de los controladores de código abierto para Cassandra establecen una o más conexiones con cada dirección IP anunciada en la tabla system.peers al establecerse una sesión. Sin embargo, determinadas configuraciones pueden hacer que un controlador se conecte a una única dirección IP de Amazon Keyspaces. Esto puede suceder si el controlador intenta validar el nombre de host SSL de los nodos homólogos (por ejemplo, los controladores DataStax Java) o cuando se conecta a través de un punto final de VPC.

    Para obtener la misma disponibilidad y rendimiento que un controlador con conexiones a varias direcciones IP, le recomendamos que haga lo siguiente:

    • Aumente el número de conexiones por IP a 9 o más en función del rendimiento deseado del cliente.

    • Cree una política de reintentos personalizada que garantice que los reintentos se ejecuten en el mismo nodo.

    • Si utiliza puntos de conexión de VPC, conceda a la entidad de IAM que se utilice para conectarse a Amazon Keyspaces permisos de acceso para consultar en su VPC la información sobre el punto de conexión y la interfaz de red. Esto mejora el equilibrio de la carga y aumenta el rendimiento de lectura/escritura. Para obtener más información, consulte Relleno de entradas de la tabla system.peers con información del punto de conexión de VPC de interfaz.

Estoy recibiendo errores de tiempo de espera de escritura durante la importación de datos

Está recibiendo un error de tiempo de espera al cargar datos con el comando de cqlsh COPY.

Failed to import 1 rows: WriteTimeout - Error from server: code=1100 [Coordinator node timed out waiting for replica nodes' responses] message="Operation timed out - received only 0 responses." info={'received_responses': 0, 'required_responses': 2, 'write_type': 'SIMPLE', 'consistency': 'LOCAL_QUORUM'}, will retry later, attempt 1 of 100

Amazon Keyspaces utiliza las excepciones ReadTimeout y WriteTimeout para indicar cuándo falla una solicitud de escritura debido a una capacidad de rendimiento insuficiente. Para ayudar a diagnosticar las excepciones de capacidad insuficiente, Amazon Keyspaces publica las siguientes métricas en Amazon. CloudWatch

  • WriteThrottleEvents

  • ReadThrottledEvents

  • StoragePartitionThroughputCapacityExceeded

Para resolver los errores de capacidad insuficiente durante una carga de datos, reduzca la tasa de escritura por trabajador o la tasa de ingesta total y, a continuación, vuelva a intentar cargar las filas. Para obtener más información, consulte Paso 4: Configurar los ajustes de cqlsh COPY FROM. Si busca una opción de carga de datos más sólida, considere la posibilidad de utilizar DSBulk, que está disponible en el GitHub repositorio. Para obtener step-by-step instrucciones, consulteTutorial: Carga de datos en Amazon Keyspaces utilizando DSBulk.

No puedo ver el tamaño real de almacenamiento de un espacio de claves o una tabla

No puede ver el tamaño real de almacenamiento del espacio de claves o de la tabla.

Puede estimar el tamaño de almacenamiento a partir del cálculo de tamaño de fila de una tabla. Puede encontrar instrucciones detalladas para calcular el tamaño de fila en Cálculo del tamaño de las filas en Amazon Keyspaces.