As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Solução de problemas de erros de gerenciamento de capacidade no Amazon Keyspaces
Está tendo problemas com a capacidade de tecnologia sem servidor? Aqui estão alguns problemas comuns e como resolvê-los.
Erros de capacidade de tecnologia sem servidor
Esta seção descreve como reconhecer erros relacionados ao gerenciamento de capacidade de tecnologia sem servidor e como resolvê-los. Por exemplo, você poderá observar eventos de capacidade insuficiente quando seu aplicativo exceder a capacidade de throughput provisionada.
Como o Apache Cassandra é um software baseado em cluster projetado para ser executado em uma frota de nós, ele não tem mensagens de exceção relacionadas a recursos de tecnologia sem servidor, como capacidade de throughput. A maioria dos drivers só entende os códigos de erro que estão disponíveis no Apache Cassandra, então o Amazon Keyspaces usa esse mesmo conjunto de códigos de erro para manter a compatibilidade.
Para mapear os erros do Cassandra para os eventos de capacidade subjacentes, você pode usar CloudWatch a Amazon para monitorar as métricas relevantes do Amazon Keyspaces. Eventos de capacidade insuficiente que resultam em erros do lado do cliente podem ser categorizados nesses três grupos com base no recurso que está causando o evento:
-
Tabela: se você escolher o modo de capacidade Provisionada para uma tabela e seu aplicativo exceder o throughput provisionado, você poderá observar erros de capacidade insuficiente. Para obter mais informações, consulte Configure os modos de capacidade de leitura/gravação no Amazon Keyspaces.
-
Partição — Você pode enfrentar eventos de capacidade insuficiente se o tráfego em uma determinada partição exceder RCUs 3.000 ou 1.000. WCUs Recomendamos distribuir o tráfego uniformemente entre partições como uma prática recomendada. Para obter mais informações, consulte Melhores práticas de modelagem de dados: recomendações para projetar modelos de dados.
-
Conexão: você pode ter um throughput insuficiente se exceder a cota para o número máximo de operações por segundo, por conexão. Para aumentar o throughput, você pode aumentar o número de conexões padrão ao configurar a conexão com o driver.
Para saber como configurar conexões para o Amazon Keyspaces, consulte. Como configurar conexões no Amazon Keyspaces Para obter mais informações sobre como otimizar conexões em VPC endpoints, consulte. Como configurar conexões em VPC endpoints no Amazon Keyspaces
Para determinar qual recurso está causando o evento de capacidade insuficiente que está retornando o erro do lado do cliente, você pode verificar o painel no console do Amazon Keyspaces. Por padrão, o console fornece uma visão agregada das CloudWatch métricas mais comuns relacionadas à capacidade e ao tráfego na seção Capacidade e métricas relacionadas na guia Capacidade da tabela.
Para criar seu próprio painel usando a Amazon CloudWatch, verifique as seguintes métricas do Amazon Keyspaces.
-
PerConnectionRequestRateExceeded
: solicitações para o Amazon Keyspaces que excedam a cota de taxa de solicitação por conexão. Cada conexão do cliente com o Amazon Keyspaces pode suportar até 3000 CQL solicitações por segundo. Você pode realizar mais de 3 mil solicitações por segundo criando várias conexões. -
ReadThrottleEvents
: solicitações para Amazon Keyspaces que excedem a capacidade de leitura de uma tabela. -
StoragePartitionThroughputCapacityExceeded
: solicitações para uma partição de armazenamento do Amazon Keyspaces que excedam a capacidade de throughput da partição. As partições de armazenamento do Amazon Keyspaces podem suportar até WCU 1000/ WRU por segundo e RCU 3000/ RRU por segundo. Para mitigar estas exceções, recomendamos que reveja o seu modelo de dados para distribuir o tráfego de leitura/gravação em mais divisórias. -
WriteThrottleEvents
: solicitações para Amazon Keyspaces que excedem a capacidade de gravação de uma tabela.
Para saber mais sobre CloudWatch, consulteMonitorando o Amazon Keyspaces com a Amazon CloudWatch. Para obter uma lista de todas as CloudWatch métricas disponíveis para o Amazon Keyspaces, consulte. Métricas e dimensões do Amazon Keyspaces
Tópicos
Estou recebendo erros de capacidade insuficientes NoHostAvailable
do driver do meu cliente
Você está vendo exceções Read_Timeout
ou Write_Timeout
para uma tabela.
Tentar repetidamente gravar ou ler uma tabela do Amazon Keyspaces com capacidade insuficiente pode resultar em erros do lado do cliente que são específicos do driver.
Use CloudWatch para monitorar suas métricas de taxa de transferência provisionadas e reais e eventos de capacidade insuficientes para a tabela. Por exemplo, uma solicitação de leitura que não tem capacidade de throughput suficiente falha com uma exceção Read_Timeout
e é publicada na métrica ReadThrottleEvents
. Uma solicitação de gravação que não tem capacidade de throughput suficiente falha com uma exceção Write_Timeout
e é publicada na métrica WriteThrottleEvents
. Para ter mais informações sobre essas métricas, consulte Métricas e dimensões do Amazon Keyspaces.
Para resolver esses problemas, considere uma das opções a seguir.
Aumente o throughput provisionado para a tabela, que é a quantidade máxima de capacidade de throughput que um aplicativo pode consumir. Para obter mais informações, consulte Unidades de capacidade de leitura e unidades de capacidade de gravação.
Permita que o serviço gerencie a capacidade de throughput em seu nome com o escalonamento automático. Para obter mais informações, consulte Gerencie a capacidade de processamento automaticamente com o escalonamento automático do Amazon Keyspaces.
Escolha o modo de capacidade sob demanda para a tabela. Para obter mais informações, consulte Configurar o modo de capacidade sob demanda.
Se você precisar aumentar a cota de capacidade padrão da sua conta, consulte Cotas para Amazon Keyspaces (para Apache Cassandra).
Você está vendo erros relacionados à capacidade excedida da partição.
Quando você vê o erro, a capacidade StoragePartitionThroughputCapacityExceeded
da partição é temporariamente excedida. Isso pode ser tratado automaticamente pela capacidade adaptativa ou pela capacidade sob demanda. Recomendamos revisar seu modelo de dados para distribuir o tráfego de leitura/gravação em mais partições para mitigar esses erros. As partições de armazenamento do Amazon Keyspaces podem suportar até WCU 1000/ WRU por segundo e RCU 3000/ RRU por segundo. Para saber mais sobre como melhorar seu modelo de dados para distribuir o tráfego de leitura/gravação em mais partições, consulte Melhores práticas de modelagem de dados: recomendações para projetar modelos de dados.
Exceções Write_Timeout
também podem ser causadas por uma taxa elevada de operações de gravação simultâneas que incluem dados estáticos e não estáticos na mesma partição lógica. Se é esperado que o tráfego execute várias operações de gravação simultâneas que incluam dados estáticos e não estáticos na mesma partição lógica, recomendamos gravar dados estáticos e não estáticos separadamente. Gravar os dados separadamente também ajuda a otimizar os custos de throughput.
Você está vendo erros relacionados à taxa de solicitação de conexão excedida.
Você está vendo PerConnectionRequestRateExceeded
devido a uma das seguintes causas.
-
Talvez você não tenha conexões suficientes configuradas por sessão.
-
Você pode estar obtendo menos conexões do que os pares disponíveis, porque não tem as permissões do VPC endpoint configuradas corretamente. Para obter mais informações sobre políticas de VPC endpoint, consulteComo usar o endpoint da VPC para o Amazon Keyspaces.
-
Se você estiver usando um driver 4.x, verifique se a validação do nome do host está ativada. O driver habilita a verificação TLS do nome do host por padrão. Essa configuração faz com que o Amazon Keyspaces apareça como um cluster de nó único para o driver. Recomendamos que você desative a verificação do nome de host.
Recomendamos que você siga estas práticas recomendadas para garantir que suas conexões e seu throughput sejam otimizados:
-
Configure o ajuste CQL da taxa de transferência de consultas.
O Amazon Keyspaces suporta até 3.000 CQL consultas por TCP conexão por segundo, mas não há limite no número de conexões que um motorista pode estabelecer.
A maioria dos drivers de código aberto do Cassandra estabelece um pool de conexões com o Cassandra e balanceia a carga das consultas sobre esse pool de conexões. O Amazon Keyspaces expõe 9 endereços IP emparelhados aos drivers. O comportamento padrão da maioria dos drivers é estabelecer uma única conexão com cada endereço IP emparelhado. Portanto, a taxa de transferência máxima de CQL consultas de um driver usando as configurações padrão será de 27.000 CQL consultas por segundo.
Para aumentar esse número, recomendamos aumentar o número de conexões por endereço IP que seu driver mantém no grupo de conexões. Por exemplo, definir o máximo de conexões por endereço IP como 2 dobrará a taxa de transferência máxima do seu driver para 54.000 CQL consultas por segundo.
-
Otimize suas conexões de nó único.
Por padrão, a maioria dos drivers Cassandra de código aberto estabelece uma ou mais conexões com cada endereço IP anunciado na tabela
system.peers
ao estabelecer uma sessão. No entanto, certas configurações podem fazer com que um driver se conecte a um único endereço IP do Amazon Keyspaces. Isso pode acontecer se o driver estiver tentando validar o SSL nome do host dos nós pares (por exemplo, drivers DataStax Java) ou quando estiver se conectando por meio de um endpoint. VPCPara obter a mesma disponibilidade e desempenho de um driver com conexões para vários endereços IP, recomendamos fazer o seguinte:
-
Aumente o número de conexões por IP para 9 ou mais, dependendo do throughput desejado do cliente.
-
Crie uma política de repetição personalizada que garanta que as novas tentativas sejam executadas no mesmo nó. Para obter mais informações, consulte
Como configurar a política de repetição para conexões no Amazon Keyspaces.
-
Se você usa VPC endpoints, conceda à IAM entidade usada para se conectar ao Amazon Keyspaces permissões de acesso para consultar VPC suas informações sobre o endpoint e a interface de rede. Isso melhora o balanceamento de carga e aumenta o throughput de leitura/gravação. Para obter mais informações, consulte Como preencher entradas da tabela system.peers com informações do endpoint da VPC de interface.
-
Estou recebendo erros de tempo limite de gravação durante a importação de dados
Você está recebendo um erro de tempo limite ao carregar dados usando o comando 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
O Amazon Keyspaces usa as exceções ReadTimeout
e WriteTimeout
para indicar quando uma solicitação de gravação falha devido à capacidade de throughput insuficiente. Para ajudar a diagnosticar exceções de capacidade insuficiente, o Amazon Keyspaces publica as seguintes métricas na Amazon. CloudWatch
WriteThrottleEvents
ReadThrottledEvents
StoragePartitionThroughputCapacityExceeded
Para resolver erros de capacidade insuficiente durante um carregamento de dados, diminua a taxa de gravação por trabalhador ou a taxa total de ingestão e, em seguida, tente carregar as linhas novamente. Para obter mais informações, consulte Etapa 4: Definir configurações de cqlsh COPY FROM. Para uma opção de upload de dados mais robusta, considere usarDSBulk, que está disponível no GitHub repositório
Não consigo ver o tamanho real do armazenamento de um espaço de chaves ou uma tabela
Você não consegue ver o tamanho real de armazenamento de um espaço de chaves ou uma tabela.
Para saber mais sobre o tamanho de armazenamento da sua mesa, consulteAvaliar seus custos no nível da tabela. Você também pode estimar o tamanho do armazenamento começando a calcular o tamanho da linha em uma tabela. Instruções detalhadas para calcular o tamanho da linha estão disponíveis emEstime o tamanho da linha no Amazon Keyspaces.