Nesta página, explicamos vários cenários de erro e fornecemos orientações para resolver os erros.
Cenários de replicação
Esta seção explica problemas de replicação que podem ocorrer com sua instância.
Como você monitora atrasos de replicação?
O Memorystore para Valkey tem a métrica /instance/replication/maximum_offset_diff
. Essa métrica monitora a diferença máxima de deslocamento de replicação (em bytes) para um nó em uma instância principal.
Ao manter baixa a diferença de compensação de replicação, as réplicas podem realizar operações de sincronização incremental com mais frequência e a um custo menor do que as operações de sincronização completa.
Recomendamos que você defina um limite para a métrica maximum_offset_diff
. Se o limite for excedido, o Memorystore para Valkey poderá enviar um alerta.
Com base no tipo de nó da sua instância, recomendamos que você defina o limite da seguinte maneira:
- Se o tipo de nó for
shared-core-nano
,standard-small
ouhighmem-medium
, defina o limite como menos de 64 MB. - Se o tipo de nó for
highmem-xlarge
, defina o limite como menos de 1 GB.
O que fazer se houver um atraso na replicação entre a instância principal e as réplicas?
Pode haver um atraso significativo na replicação se a instância principal tiver muitas operações de gravação e as réplicas não conseguirem acompanhar para replicar essas operações. Para resolver esse problema, recomendamos que você dimensione a capacidade da instância aumentando o número de fragmentos.
Cenários de gerenciamento de memória
Esta seção explica os problemas de gerenciamento de memória que sua instância pode encontrar.
Qual métrica você pode usar para determinar se a instância está com estresse de memória?
Para monitorar o uso da memória de uma instância do Memorystore para Valkey, recomendamos que você consulte a métrica /instance/memory/maximum_utilization
. Se o uso de memória da instância se aproximar de 80% e você esperar que o uso de dados aumente, aumente o tamanho da instância para melhorar o desempenho e abrir espaço para novos dados.
Cenários de monitoramento
Esta seção explica os problemas de monitoramento que sua instância pode encontrar.
Como configurar alertas para o Memorystore para Valkey?
Use o Cloud Monitoring para definir alertas que avisam se alguma métrica exceder os limites definidos para sua instância. Para mais informações sobre como definir alertas no Cloud Monitoring, consulte Definir um alerta do Monitoring para uso de memória.
Cenários de gerenciamento de conexões
Esta seção explica os problemas de gerenciamento de conexões que sua instância pode encontrar.
Se você atingir o limite de conexão ou receber um tempo limite de conexão, o que fazer?
Quando você atinge o limite de conexões, o cliente não consegue se conectar ao servidor. Isso é conhecido como uma rejeição de conexão.
Se isso acontecer, faça o seguinte:
- Use a métrica
/instance/node/stats/rejected_connections_count
para determinar o número de conexões que o Memorystore for Valkey rejeita porque o nó da instância atinge o limite máximo de clientes. - Use a métrica
/instance/node/clients/connected_clients
para determinar o número de clientes conectados ao nó da instância. Assim, você pode verificar se todos os nós na instância estão abaixo do limite. - Interrompa conexões vazadas ou indesejadas usando o comando
client kill
. - Reduza a contagem de conexões ou o tamanho do pool no aplicativo cliente. Para mais informações, consulte a documentação associada ao aplicativo cliente.
- Ajuste o limite máximo de clientes. Para mais informações, consulte Configurar uma instância.
- Escalone sua instância para um tipo de nó maior para que ela tenha um limite de conexão mais alto.
Cenários de tempo limite
Esta seção explica os problemas de tempo limite que sua instância pode encontrar.
Se você receber um tempo limite de E/S, o que fazer?
Quando uma operação de leitura ou gravação no Memorystore para Valkey não é concluída em um período especificado, ocorre um tempo limite de E/S. Esse tempo limite pode ocorrer por vários motivos. Por exemplo, um ou mais nós da sua instância podem estar sobrecarregados.
Se você receber um tempo limite de E/S, faça o seguinte:
- Use a métrica
instance/cpu/maximum_utilization
para determinar a utilização da CPU de um nó na sua instância, de 0,0 (0%) a 1,0 (100%). Recomendamos que todos os nós tenham uma porcentagem de utilização da CPU inferior a 80%. Para mais informações, consulte Práticas recomendadas de uso da CPU. - Quando o cliente se desconecta do servidor porque o tempo limite do servidor expira, tente de novo com espera exponencial e com instabilidade. Isso ajuda a evitar que vários clientes sobrecarreguem o servidor simultaneamente.
Cenários de erro de conectividade
Esta seção explica os problemas de conectividade que sua instância pode encontrar.
Erro de conexão causado por regras de firewall
As regras de firewall podem causar erros de conexão ao bloquear as portas usadas pelo Memorystore para Valkey. Permita listar todas as portas para os dois endpoints do Private Service Connect da sua instância. Para mais informações sobre os endpoints, consulte Endereços de rede reservados.
Erro de conexão causado por políticas da organização.
É possível ter uma política da organização que bloqueia suas conexões do Private Service Connect com a instância do Memorystore para Valkey.
Se a política da organização usar a política .restrictPrivateServiceConnectProducer
,
adicione à lista de permissões o número da pasta 961333125034
, que é específica para o Memorystore para Valkey. Exemplo:
name: organizations/Consumer-org-1/policies/compute.restrictPrivateServiceConnectProducer spec: rules: - values: allowedValues: - under:folders/961333125034
Se a política da organização usar a política .disablePrivateServiceConnectCreationForConsumers
,
adicione SERVICE_PRODUCERS
à lista de permissões. Exemplo:
name: organizations/Consumer-org-1/policies/compute.disablePrivateServiceConnectCreationForConsumers spec: rules: - values: allowedValues: - SERVICE_PRODUCERS
Como lidar com erros em instâncias com o modo de cluster desativado
Se o aplicativo se conectar ao endpoint de leitura de uma instância sem réplicas de leitura, a conexão será fechada e a mensagem de erro
ERR no replicas found
vai aparecer. Nesse caso, tente conectar o aplicativo ao endpoint principal ou adicione réplicas de leitura à instância.Em caso de failover, as conexões atuais do aplicativo serão fechadas e a mensagem de erro
ERR role change occurred
vai aparecer. Essa mensagem de erro também aparece se o aplicativo se conectar ao endpoint de leitura de uma instância e todas as réplicas de leitura dela falharem. Nesse caso, o aplicativo precisa tentar se conectar de novo com espera exponencial.