Questa pagina fornisce indicazioni per utilizzare Memorystore for Redis in modo ottimale. Questa pagina segnala inoltre i potenziali problemi da evitare.
Per un elenco di scenari di risoluzione dei problemi, consulta la sezione Risoluzione dei problemi.
Esportazione RDB
Quando esporti un backup RDB, segui le seguenti indicazioni:
- Esegui l'esportazione in un periodo di bassa frequenza di scrittura.
- In caso di esportazione durante un periodo di frequenza di scrittura elevata, riduci temporaneamente la configurazione di
maxmemory
al 50% di capacità dell'istanza per fornire un overhead sufficiente operativa.
Operazioni che richiedono molte risorse
Per le istanze Redis di livello Standard, le seguenti operazioni utilizzano memoria aggiuntiva per la durata dell'operazione:
- Upgrade della versione
- Scalata verso l'alto/verso il basso
- Failover manuale
- Importazione/esportazione
L'upgrade della versione, la scalabilità e il failover manuale utilizzano memoria aggiuntiva (per i modelli di livello superiore) a causa della replica. Queste operazioni seguono la replica descritto in Comportamento di upgrade dell'istanza del livello Standard.
Le operazioni di importazione ed esportazione richiedono memoria aggiuntiva a causa del processo Redis forked e della gestione dei dati con copia su scrittura associata a queste operazioni.
Per ridurre gli svantaggi delle operazioni con un uso intensivo delle risorse, devi:
- Abbassa il valore di maxmemory fino all'80% della capacità dell'istanza per la durata dell'operazione. Ciò fornisce un overhead sufficiente per un'operazione di successo.
- Monitora la metrica del rapporto di utilizzo della memoria di sistema e assicurati che questa metrica sia inferiore all'80% prima di eseguire una di queste operazioni aziendali.
- Esegui queste operazioni durante periodi di basso traffico delle istanze (ad esempio durante la notte, nel fine settimana e così via).
- Implementa la logica per i nuovi tentativi con backoff esponenziale prima di eseguire queste operazioni.
Operazioni e scenari che richiedono un nuovo tentativo di connessione
Le operazioni e gli scenari seguenti interrompono la connessione di rete tra e l'istanza Redis:
- Upgrade della versione
- Scalata verso l'alto/verso il basso
- Importazione
- Failover manuale
- Manutenzione del sistema
- Rotazione dell'autorità di certificazione per le istanze Redis con crittografia in transito attivata
- Failover di emergenza
Queste operazioni modificano l'istanza e richiedono un'interruzione temporanea della connessione. Prima di eseguire queste operazioni, devi implementare una logica di ripetizione con backoff esponenziale in modo che l'applicazione si ricolleggi automaticamente e continui a funzionare normalmente.
Manutenzione ordinaria
Le istanze Memorystore for Redis vengono sottoposte a manutenzione periodicamente. Per ulteriori dettagli, consulta il criterio di manutenzione di Memorystore for Redis.
Implementa le seguenti best practice per prepararti alla manutenzione di routine:
- Imposta un periodo di manutenzione per i casi in cui possono verificarsi aggiornamenti di manutenzione.
- Pianifica i periodi di manutenzione per orari in cui il traffico delle istanze è basso e l'overhead della memoria è sufficiente. Per ulteriori informazioni, vedi Impatto degli aggiornamenti di manutenzione.
- Attivare le notifiche per i periodi di manutenzione per ricevere un avviso in caso di manutenzione imminente.
- Implementa la logica per i nuovi tentativi con backoff esponenziale.
- Per le istanze di livello Standard, puoi simulare un evento di manutenzione utilizzando il failover manuale per vedere in che modo il failover causato dalla manutenzione influisce sulla tua applicazione.
- Per le istanze del livello base puoi simulare l'impatto di un aggiornamento di manutenzione scalando temporaneamente l'istanza a una dimensione maggiore. Dopo aver osservato l'impatto, puoi tornare alle dimensioni originali.
Gestione della memoria
La gestione della memoria può essere un problema a causa della ben nota frammentazione della memoria che si verifica con Redis open source. Ti consigliamo di abbassare il maxmemory
configurazione automatica dell'istanza per ottenere l'overhead in caso di problemi
pressione di memoria.
Il modo migliore per monitorare la pressione della memoria sull'istanza Memorystore è utilizzare la metrica Rapporto di utilizzo della memoria di sistema. Per una guida più dettagliata su come gestire la memoria per Memorystore for Redis, consulta le best practice per la gestione della memoria.
Gestione delle connessioni inattive
Nel tempo, potresti notare un aumento del numero di connessioni all'istanza Memorystore se le connessioni non vengono chiuse correttamente. Questo può
hanno implicazioni negative sulle prestazioni, soprattutto se utilizzi la crittografia dei dati in transito, che impongono limiti massimi di connessioni
in base al livello di capacità. Per ovviare a questo problema, consigliamo di utilizzare
timeout
Parametro di configurazione Redis
che ti consente di impostare il numero di secondi prima che le connessioni client inattive vengano
automaticamente.
Nomi delle risorse Access Transparency
I dati sensibili non devono essere archiviati in Memorystore per i nomi delle risorse Redis. Per nomi delle risorse si intendono i nomi delle istanze Memorystore for Redis e i metadati delle istanze, ad esempio i tag. Non è garantito che i dati archiviati nei nomi delle risorse siano protetti da Access Transparency di Google Cloud e potrebbero essere in conflitto con i requisiti di conformità di Access Transparency della tua organizzazione.
Connettore di accesso VPC serverless obbligatorio per alcuni ambienti serverless
Alcuni ambienti serverless è necessario un Connettore di accesso VPC serverless per connetterti a Memorystore for Redis. Configura il connettore di accesso VPC serverless per il tuo progetto se vuoi connetterti utilizzando uno di questi ambienti.
Networking
Ti consigliamo di utilizzare la modalità di connessione Accesso ai servizi privati. Memorystore for Redis utilizza due modalità di connessione: accesso ai servizi privati e peering diretto. La modalità di connessione di accesso privato ai servizi rende l'intervallo IP gestione più semplice e ti permette di usare il VPC condiviso se vuoi.
Una volta creata un'istanza, la modalità di connessione non può essere modificata.
Per maggiori dettagli, vedi Networking.
Monitoraggio e avvisi
Ti consigliamo di utilizzare il monitoraggio e gli allarmi perché forniscono indicatori chiave sull'utilizzo della memoria dell'istanza Redis. Inoltre, ti forniscono informazioni sull'efficienza con cui la tua istanza Redis risponde alle richieste di cache in arrivo.
Devi configurare i seguenti avvisi predefiniti:
- Impostazione di un avviso di Cloud Monitoring per l'utilizzo della memoria
- Impostazione di un avviso di Cloud Monitoring per il rapporto di utilizzo della memoria di sistema
Best practice per l'utilizzo della CPU
L'uso improprio di comandi Redis costosi porta a latenza elevata, mancata risposta o problemi di connettività. Le istanze di livello standard forniscono alta disponibilità durante il ripristino di emergenza e si basano sulla replica asincrona tra i nodi principali e di replica. Se uno dei nodi ha un'elaborazione di comandi dispendiosa che blocca il thread principale di Redis, la replica potrebbe essere interessata. Se il problema persiste e si verifica un'interruzione della posizione i dati più recenti scritti nel luogo dell'interruzione potrebbero non essere disponibile nell'altra posizione.
Ti consigliamo di utilizzare Cloud Monitoring
per impostare avvisi per i secondi CPU del thread principale
(redis.googleapis.com/stats/cpu_utilization_main_thread
) per assicurarti
L'utilizzo della CPU non supera 0,9 secondi per il nodo primario e 0,5 secondi
per ciascun nodo di replica.
Se la tua istanza Redis supera i valori consigliati, ti consigliamo di scalare dell'istanza a un livello di capacità superiore o segui le istruzioni per la risoluzione dei problemi per evitare operazioni che richiedono un uso intensivo della CPU.