In questa pagina vengono illustrati vari scenari di errore e vengono fornite indicazioni per la risoluzione degli errori.
Scenari di replica
Questa sezione illustra i problemi di replica che potrebbero verificarsi con il cluster.
Come si monitorano i ritardi di replica?
Memorystore for Redis Cluster ha la metrica /cluster/replication/maximum_offset_diff. Questa metrica monitora la differenza massima di offset di replica (in byte) per un nodo in un cluster primario.
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 Redis Cluster può inviarti una notifica tramite un avviso.
In base al tipo di nodo del cluster, ti consigliiamo di impostare la soglia come segue:
Se il tipo di nodo è
redis-shared-core-nano,redis-standard-small,redis-highmem-medium,redis-highcpu-mediumoredis-standard-large, imposta la soglia in modo che sia inferiore a 64 MB.Se il tipo di nodo è
redis-highmem-xlargeoredis-highmem-2xlarge, imposta la soglia in modo che sia inferiore a 1 GB.
Scenari di errore di connettività
Questa sezione illustra i problemi di connettività che la tua istanza può riscontrare.
Errore di connessione causato dalle regole firewall
Le regole firewall potrebbero causare errori di connessione bloccando le porte utilizzate da Memorystore for Redis Cluster. Per entrambi gli endpoint Private Service Connect dell'istanza, inserisci nella lista consentita le porte da 11000 a 13047. Per saperne di più su questi endpoint, consulta 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 Redis Cluster.
Se il criterio dell'organizzazione utilizza il criterio .restrictPrivateServiceConnectProducer, inserisci nella lista consentita il numero di cartella 961333125034, che è una cartella specifica per Memorystore for Redis Cluster. 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 inserire nella lista consentita SERVICE_PRODUCERS. Ad esempio:
name: organizations/Consumer-org-1/policies/compute.disablePrivateServiceConnectCreationForConsumers
spec:
rules:
- values:
allowedValues:
- SERVICE_PRODUCERS
Errore di connessione causato da connessioni che non rispondono
Ti consigliamo vivamente di configurare l'applicazione client in modo che rilevi le connessioni che non rispondono a Memorystore for Redis Cluster. Quando viene rilevata una connessione che non risponde, il client deve reimpostarla. Per creare un'applicazione resiliente, ti consigliamo le seguenti configurazioni client:
- Configura i parametri di keep-alive TCP: imposta i parametri
TCP keepalive time,TCP keepalive intervaleTCP keepalive probesin modo che i client rilevino e abbandonino in modo proattivo le connessioni che non rispondono, anche quando le connessioni sono inattive. Ad esempio, se imposti il parametroTCP keepalive timesu 30 secondi,TCP keepalive intervalsu 10 secondi eTCP keepalive probessu 3, i client reimpostano le connessioni inattive che non rispondono entro un minuto. - Configura i timeout utente TCP: imposta questo timeout nei client per reimpostare le connessioni con richieste in sospeso e interrompere la risposta. Ad esempio, se imposti il timeout su 15 secondi, i client reimpostano le connessioni che non rispondono con richieste in sospeso dopo 15 secondi.
Scenari di utilizzo della CPU
Questa sezione illustra i problemi di utilizzo della CPU che il cluster potrebbe riscontrare.
Il buffer di output del cluster esaurisce lo spazio
Se il buffer di output del cluster esaurisce lo spazio, procedi nel seguente modo:
- Imposta un valore inferiore per il
maxmemoryparametro. - Utilizza il criterio
allkeys-lrumaxmemory.
Quando la memoria del cluster è piena e arriva una nuova scrittura, Memorystore for Redis Cluster elimina le chiavi per fare spazio alla scrittura, in base al criterio maxmemory del cluster. Il criterio allkeys-lru elimina le chiavi utilizzate meno di recente (LRU) dall'intero keyset.
Ti consigliamo di monitorare maxmemory e la memoria utilizzata del cluster. In questo modo puoi sapere se il cluster raggiunge la capacità di cluster di cui è stato eseguito il provisioning.
Inoltre, riducendo il valore del parametro maxmemory, ottieni più spazio per l'overhead.
Perché le metriche esterne potrebbero mancare per il cluster?
Se il cluster registra un utilizzo elevato della CPU o le risorse del cluster si esauriscono (ad esempio, a causa di un numero eccessivo di connessioni), il cluster potrebbe non funzionare correttamente e le metriche esterne potrebbero mancare.
Scenari di persistenza
Questa sezione illustra i problemi di persistenza che potrebbero verificarsi con il cluster.
Il traffico di scrittura supera la capacità di Memorystore for Redis Cluster di compattare e recuperare spazio tramite la riscrittura AOF
In questa situazione, il file AOF (Append-Only File) cresce più velocemente di quanto il processo di riscrittura possa gestire. Ciò comporta l'esaurimento del disco, causa errori di scrittura e blocca le operazioni che richiedono la creazione di repliche e la sincronizzazione completa.
Memorystore for Redis Cluster ha implementato dei guardrail per regolare la velocità effettiva di scrittura. In questo modo, la riscrittura AOF può tenere il passo con i carichi di lavoro di scrittura elevati e sostenuti.