Como posso evitar erros comuns do Databases for Redis ?
Databases for Redis é um banco de dados na memória. Ele difere dos bancos de dados persistentes tradicionais em como aceita, processa e armazena dados. As informações a seguir destacam erros comuns que você pode experimentar, algumas razões para esses erros e as soluções que podem ser aplicadas para corrigir esses erros..
Erro: mensagem Connection to master lost
Databases for Redis funciona com dois membros (principal e réplica) e três sentinelas. As seguintes razões podem ser a causa da mensagem connection to master lost:
a. Devido às operações de entrada/saída por segundo (IOPS) mais baixas, o mestre está ocupado e não está respondendo às sentinelas, o que retorna essa mensagem de erro nos logs da plataforma.
b. Devido à latência de rede, as sentinelas não conseguem se comunicar com o principal...
c. Atividades de manutenção planejadas
d. Upgrades de versão secundária
Soluções
Tente as seguintes soluções para corrigir o erro:
a. Aumente o tamanho do disco 1 GB é igual a 10 IOPS.
b. Mova para cálculo isolado para alocação de recurso dedicado.
c. Aumente o tamanho da RAM
d. A lógica RETRY é necessária, portanto, assegure-se de que isso seja implementado.
e. A réplica será promovida para o principal automaticamente após alguns segundos.
f. Implemente políticas memory eviction ou TTL em sua instância do Redis.
IBM® Cloud Databases não executa nenhuma atividade no nó mestre. Se necessário, todas as atividades são concluídas no nó de réplica, que é então promovido para principal. Os bancos de dados são configurados para aguardar por 30 segundos para localizar o nó principal antes que ocorra a promoção de réplica
Erro: A sincronização assíncrona do AOF está demorando muito (o disco está ocupado?)
AOF é Anexar Somente Arquivo. Este é o registro gravado no disco persistente do Redis quando a configuração persistente está ativada
Redis usa arquivos AOF e RDB para gravar seu registro e RDB para instantâneos.
Algumas das razões pelas quais você pode ver esse erro são as seguintes:
a. Devido a IOPS insuficientes, o Redis não pode gravar no disco
b. Pode haver um backup do Databases for Redis em execução ao mesmo tempo em que seu lote está em execução.
c. Seu aplicativo pode estar colocando chamadas API desconhecidas na instância do Redis.
Exceto PSYNC que é usado para métricas, nós não solicitamos nenhuma outra API em sua instância.
Soluções:
Tente as seguintes soluções para corrigir o erro:
a. Aumente o tamanho do disco Uma recomendação de ballpark é 30% mais do que o volume esperado.
b. Se o Redis estiver na capacidade máxima, divida uma única instância do Redis em várias instâncias e ajuste sua arquitetura do aplicativo
c. Desative a persistência se não for necessária. Em vez disso, altere para o modo de cache
O tamanho do disco não pode ser reduzido, mas a memória pode ser. Como o Redis é um armazenamento de dados na memória, recomendamos que você avalie o tamanho dos dados em andamento antes de reduzir a memória da sua instância, pois uma redução significativa pode resultar em erro.
Erro: o ajuste de escala de uma instância está preso ou demorando mais do que o esperado
Com o IBM Cloud, é possível escalar ou redimensionar sua instância conforme suas necessidades de dados crescem. Oferecemos ajuste automático de escala e ajuste de escala manual por meio da IU, CLI e APIs. No entanto, tome cuidado ao redimensionar sua instância. Se o ajuste de escala estiver demorando mais do que o esperado, pode ser por uma das seguintes razões:
a. Sua instância já está na maior instância (cores*rams) e não há cluster maior disponível para mover sua carga de trabalho atualmente. Nesse caso, um novo cluster será formado e sua instância será movida, o que pode levar alguns minutos.
b. Você reduziu drasticamente sua memória (por exemplo, de 16 GB RAM para 10 GB RAM). Entretanto, o tamanho do armazenamento de dados (disco) é maior, por exemplo, 11 GB. Nesses casos, não há espaço suficiente na RAM para ler dados do disco e a formação pode ficar presa.
Soluções:
Tente as seguintes soluções para corrigir o erro:
a. Redis é encadeamento único para suas operações primárias. É esperado que você use menos núcleos e mais memória. Isso aumenta a probabilidade de disponibilidade do cluster.
b. Aumente sua RAM e disco com base em suas necessidades de E/S.
c. Não reduza sua RAM drasticamente. Você é aconselhado a decretar gradualmente.
Certifique-se de que haja memória de marca d'água disponível para que o site Redis execute seus processos inerentes.
Erro: READONLY Não é possível escrever em uma réplica somente leitura
Databases for Redis tem dois nós, principal e réplica. Os usuários podem se conectar apenas ao nó principal e o nó de réplica é usado para assegurar alta disponibilidade, que geralmente é inacessível aos usuários. No entanto, como com qualquer conexão remota, pode ocorrer uma comutação na qual a réplica é promovida para principal É possível experimentar um blip momentâneo no serviço, e nenhum outro impacto será esperado se os nós estiverem configurados corretamente
a. Devido ao baixo IOPS, o mestre está ocupado e não responde às sentinelas, o que retorna essa mensagem de erro nos logs da plataforma.
b. Devido à latência de rede, as sentinelas não conseguem se comunicar com o principal...
c. Manutenção programada
d. Upgrades de versão secundária
Soluções:
Tente as seguintes soluções para corrigir o erro:
a. Inclua a lógica de nova tentativa e reconexão no design do aplicativo. É possível usar bibliotecas como ioredis e noderedis. Para obter mais detalhes, consulte detecção e manipulação de erros com Redis postagem do blog
b. Determinados clientes têm lógica de nova tentativa e de reconexão integrada Você pode fazer uso desses clientes também.
c. A lógica de nova tentativa e de reconexão é altamente recomendada para quaisquer serviços de nuvem