Risoluzione dei problemi

Questa pagina spiega vari scenari di errore e fornisce indicazioni per la risoluzione degli errori.

Scenari di replica

Questa sezione spiega i problemi di replica che potrebbero verificarsi con la tua istanza.

Come monitori i ritardi di replica?

Memorystore for Valkey ha la metrica /instance/replication/maximum_offset_diff. Questa metrica monitora la differenza massima di offset di replica (in byte) per un nodo in un'istanza principale.

Mantenendo bassa la differenza di offset di replica, le repliche possono eseguire operazioni di sincronizzazione incrementale più frequentemente e a un costo inferiore rispetto alle operazioni di sincronizzazione completa.

Ti consigliamo di impostare una soglia per la metrica maximum_offset_diff. Se la soglia viene superata, Memorystore for Valkey può inviarti una notifica tramite un avviso.

In base al tipo di nodo per la tua istanza, ti consigliamo di impostare la soglia nel seguente modo:

  • Se il tipo di nodo è shared-core-nano, standard-small o highmem-medium, imposta la soglia su un valore inferiore a 64 MB.
  • Se il tipo di nodo è highmem-xlarge, imposta la soglia su un valore inferiore a 1 GB.

Cosa fai se si verifica un ritardo della replica tra l'istanza principale e le relative repliche?

Potrebbe verificarsi un ritardo di replica significativo se l'istanza principale ha troppe operazioni di scrittura e le repliche non riescono a recuperare per replicare queste operazioni. Per risolvere il problema, ti consigliamo di scalare la capacità dell'istanza aumentando il numero di shard per l'istanza.

Scenari di gestione della memoria

Questa sezione spiega i problemi di gestione della memoria che la tua istanza potrebbe riscontrare.

Quale metrica puoi utilizzare per determinare se la tua istanza è sotto stress di memoria?

Per monitorare l'utilizzo della memoria per un'istanza Memorystore for Valkey, ti consigliamo di visualizzare la metrica /instance/memory/maximum_utilization. Se l'utilizzo della memoria dell'istanza si avvicina all'80% e prevedi che l'utilizzo dei dati aumenterà, aumenta le dimensioni dell'istanza per migliorare le prestazioni e fare spazio per nuovi dati.

Scenari di monitoraggio

Questa sezione spiega i problemi di monitoraggio che la tua istanza potrebbe riscontrare.

Come si configurano gli avvisi per Memorystore for Valkey?

Puoi utilizzare Cloud Monitoring per impostare avvisi che ti informino se le metriche superano le soglie impostate per la tua istanza. Per ulteriori informazioni sulla configurazione degli avvisi in Cloud Monitoring, consulta Impostare un avviso di Monitoring per l'utilizzo della memoria.

Scenari di gestione delle connessioni

Questa sezione spiega i problemi di gestione delle connessioni che la tua istanza potrebbe riscontrare.

Se raggiungi il limite di connessioni o ricevi un timeout della connessione, cosa fai?

Quando raggiungi il limite di connessioni, il client non riesce a connettersi al server. Questo è noto come rifiuto della connessione.

Se ciò accade, procedi nel seguente modo:

Scenari di timeout

Questa sezione spiega i problemi di timeout che la tua istanza potrebbe riscontrare.

Se ricevi un timeout I/O, cosa devi fare?

Quando un'operazione di lettura o scrittura in Memorystore for Valkey non viene completata entro un periodo di tempo specificato, si verifica un timeout I/O. Questo timeout potrebbe verificarsi per vari motivi. Ad esempio, uno o più nodi della tua istanza potrebbero essere sovraccarichi.

Se ricevi un timeout I/O, procedi nel seguente modo:

  • Utilizza la metrica instance/cpu/maximum_utilization per determinare l'utilizzo della CPU per un nodo nella tua istanza, da 0,0 (0%) a 1,0 (100%). Consigliamo che tutti i nodi abbiano una percentuale di utilizzo della CPU inferiore all'80%. Per ulteriori informazioni, consulta le best practice per l'utilizzo della CPU.
  • Quando il client si disconnette dal server perché il server ha raggiunto il timeout, riprova con il backoff esponenziale e con il jitter. In questo modo si evita che più client sovraccarichino il server contemporaneamente.

Scenari di errore di connettività

Questa sezione spiega i problemi di connettività che la tua istanza potrebbe riscontrare.

Errore di connessione causato dalle regole firewall

Le regole firewall possono causare errori di connessione bloccando le porte utilizzate da Memorystore for Valkey. Devi inserire nella lista consentita tutte le porte per entrambi gli endpoint Private Service Connect della tua istanza. Per saperne di più sugli endpoint, vedi Indirizzi di rete riservati.

Errore di connessione causato dai criteri dell'organizzazione.

Puoi avere un criterio dell'organizzazione che blocca le connessioni Private Service Connect alla tua istanza Memorystore for Valkey.

Se i criteri della tua organizzazione utilizzano il criterio .restrictPrivateServiceConnectProducer, inserisci nell'allowlist il numero della cartella 961333125034, che è una cartella specifica per Memorystore for Valkey. Ad esempio:

name: organizations/Consumer-org-1/policies/compute.restrictPrivateServiceConnectProducer
spec:
    rules:
      - values:
          allowedValues:
          - under:folders/961333125034

Se il criterio dell'organizzazione utilizza il criterio .disablePrivateServiceConnectCreationForConsumers, devi consentire l'elenco consentito SERVICE_PRODUCERS. Ad esempio:

name: organizations/Consumer-org-1/policies/compute.disablePrivateServiceConnectCreationForConsumers
spec:
    rules:
      - values:
          allowedValues:
          - SERVICE_PRODUCERS

Gestione degli errori per le istanze con modalità cluster disabilitata

  • Se l'applicazione si connette all'endpoint di lettura di un'istanza senza repliche di lettura, la connessione si chiude e viene visualizzato il messaggio di errore ERR no replicas found. In questo caso, prova a connettere l'applicazione all'endpoint principale o aggiungi repliche di lettura all'istanza.

  • In caso di failover, le connessioni esistenti dalla tua applicazione vengono chiuse e viene visualizzato il messaggio di errore ERR role change occurred. Visualizzerai questo messaggio di errore anche se la tua applicazione si connette all'endpoint di lettura di un'istanza e tutte le repliche di lettura dell'istanza non funzionano. In questo caso, l'applicazione deve riprovare la connessione con il backoff esponenziale.