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 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 spiega i problemi di connettività che il cluster potrebbe 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 del cluster, consenti le porte TCP da 11000 a 13047. Per saperne di più su questi endpoint, consulta Indirizzi di rete riservati.
Errore di connessione causato dai criteri dell'organizzazione
Potresti avere un criterio dell'organizzazione che blocca le connessioni Private Service Connect al cluster.
Se il criterio dell'organizzazione utilizza il criterio .restrictPrivateServiceConnectProducer, consenti la 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, consenti 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 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 spiega 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:
- 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 spiega 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 questo caso, 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 workload di scrittura elevati e sostenuti.