In questa pagina trovi le risposte alle seguenti domande frequenti sull'utilizzo di Memorystore for Valkey:
- Quanta CPU e memoria consigliamo di utilizzare?
- Come monitori la quantità di CPU e memoria che utilizzi?
- Come imposti gli avvisi per monitorare l'utilizzo di CPU e memoria?
- Quante connessioni dall'applicazione client consigliamo di tenere aperte?
- Come monitori il numero di connessioni client per la tua istanza?
- Cosa fai se hai troppe connessioni client?
- Supponiamo che tu abbia un evento imminente che aumenterà il traffico per la tua attività. Che cosa fai?
- Come proteggi i tuoi dati?
- Quali sono le best practice per il codice client?
- Quali sono le opzioni per la resilienza dei dati?
- Come si ottiene il rendimento migliore per la tua istanza?
- Come puoi ottimizzare l'alta disponibilità per la tua istanza?
Quanta memoria e CPU consigliamo di utilizzare?
Ti consigliamo di non superare l'80% di utilizzo della memoria. Ti consigliamo inoltre di eseguire l'operazione con un utilizzo medio della CPU del 60%. Di conseguenza, puoi tollerare la perdita di una singola zona di disponibilità, che corrisponde a circa un terzo della tua capacità totale. Per questo scenario, l'utilizzo medio della CPU sui nodi rimanenti è di circa il 90%.
Come monitori la quantità di CPU e memoria che utilizzi?
Per monitorare l'utilizzo della CPU sia per il nodo Memorystore for Valkey principale sia per
le relative repliche di lettura, utilizza la metrica /instance/cpu/maximum_utilization
. Questa metrica
misura l'utilizzo massimo della CPU in tutti i nodi dell'istanza, da
0,0 (0%) a 1,0 (100%). Per saperne di più, consulta le best practice per l'utilizzo della CPU.
Per monitorare la memoria utilizzata dal nodo Memorystore for Valkey principale e dalle relative repliche di lettura, utilizza la metrica /instance/node/memory/utilization
. Questa metrica misura
l'utilizzo di memoria per un singolo nodo nell'istanza, da 0,0 (0%)
a 1,0 (100%).
Come si impostano gli avvisi per monitorare l'utilizzo di CPU e memoria?
Per impostare avvisi di monitoraggio per l'utilizzo di CPU e memoria, utilizza Cloud Monitoring. Ad esempio, puoi impostare un avviso per ricevere una notifica se la metrica /instance/memory/maximum_utilization
supera una soglia che hai impostato. Per saperne di più, vedi Impostare un avviso di monitoraggio per l'utilizzo della memoria.
Quante connessioni dall'applicazione client consigliamo di tenere aperte?
Ti consigliamo di utilizzare i benchmark per il tuo cliente per determinare l'impostazione ottimale. Il punto di partenza consigliato per ogni client è una connessione per nodo Valkey. Per saperne di più, consulta la pagina Evitare il sovraccarico di connessioni su Valkey.
Ti consigliamo inoltre di attivare il pipelining per il client in modo che possa elaborare più richieste e più rapidamente.
Come monitori il numero di connessioni client per la tua istanza?
Per monitorare il numero di connessioni client che utilizzi, utilizza la metrica /instance/node/clients/connected_clients
. Questa metrica misura il numero di client connessi a ciascun nodo dell'istanza.
Cosa fai se hai troppe connessioni client?
Il numero massimo di connessioni client, che puoi trovare utilizzando la metrica /instance/clients/maximum_connected_clients
, deve essere inferiore al valore associato al parametro maxclients
. Se i valori sono uguali, procedi nel seguente modo:
- Interrompi eventuali connessioni trapelate o non necessarie utilizzando il comando
client kill
. - Controlla il tipo di nodo per la tua istanza. Se il numero massimo di client per il tipo di nodo è uguale al valore massimo supportato da Memorystore for Valkey per il tipo di nodo, modifica le dimensioni del pool di connessioni del client o utilizza un tipo di nodo più grande. Per saperne di più, consulta la sezione Evitare il sovraccarico di connessioni su Valkey.
Supponiamo che tu abbia un evento in programma che aumenterà il traffico per la tua attività. Cosa fai?
Puoi configurare Memorystore for Valkey in base alle esigenze della tua attività. Per questo scenario, puoi aumentare la capacità della tua istanza nei seguenti modi:
- Puoi aggiungere shard all'istanza. In questo modo l'istanza utilizza più CPU per gestire un volume maggiore di dati o traffico. La capacità della tua istanza è determinata dal numero di shard nell'istanza. Aggiungendo shard, la tua applicazione può gestire una maggiore domanda senza un calo delle prestazioni.
- Puoi modificare il tipo di nodo in un tipo di nodo più grande. In questo modo l'istanza ha più
memoria. La capacità dell'istanza è determinata dal tipo di nodo dell'istanza. Ad esempio, puoi modificare il tipo di nodo da
standard-small
ahighmem-medium
.
Ti consigliamo di aumentare la capacità della tua istanza diversi giorni prima dell'evento. Inoltre, per aiutarti a scalare la capacità della tua istanza e per aumentare la velocità e l'affidabilità dello scaling dell'istanza, esegui lo scaling durante i periodi di traffico ridotto. Per scoprire come monitorare il traffico delle istanze, consulta Monitorare le istanze.
Come vengono protetti i dati?
Per proteggere i tuoi dati, Memorystore for Valkey ti fornisce i seguenti meccanismi:
- Autenticazione Identity and Access Management (IAM): utilizza IAM per gestire l'accesso di login per i tuoi utenti e service account. L'autenticazione basata su IAM si integra con Valkey AUTH, consentendoti di ruotare le credenziali (token IAM) senza problemi senza fare affidamento su password statiche.
- Crittografia in transito: crittografa tutto il traffico Valkey utilizzando il protocollo TLS (Transport Layer Security). Se la crittografia in transito è abilitata, i client Valkey comunicano in modo sicuro tramite una connessione. I client Valkey non configurati per TLS sono bloccati.
Quali sono le best practice per il codice client?
Per utilizzare il codice client con Memorystore for Valkey in modo ottimale, ti consigliamo di seguire queste best practice:
Per connettere l'applicazione a un'istanza Memorystore for Valkey con modalità cluster abilitata, utilizza un client che consigliamo, ad esempio valkey-go, iovalkey, valkey-py o Valkey GLIDE.
Se utilizzi un client diverso, assicurati di utilizzare un client Valkey compatibile con il cluster che gestisce una mappa degli slot hash ai nodi corrispondenti nell'istanza. Di conseguenza, le richieste possono essere inviate ai nodi corretti. Ciò impedisce l'overhead delle prestazioni causato dai reindirizzamenti. Per ulteriori informazioni, consulta le best practice per il client Valkey.
Ti consigliamo di impostare gli intervalli di timeout della connessione su cinque secondi e gli intervalli di timeout della richiesta su 10 secondi. Se imposti i timeout su intervalli più brevi, Memorystore for Valkey potrebbe subire tempeste di riconnessione, che possono mettere a rischio il servizio.
Utilizza il backoff esponenziale come strategia standard di gestione degli errori per le applicazioni di rete quando il client ritenta periodicamente una richiesta non riuscita con ritardi crescenti tra le richieste.
Utilizza i nostri esempi di codice della libreria client. Ad esempio, i valori predefiniti per il client valkey-go soddisfano tutti i nostri consigli, quindi non devi configurare nulla per questo client.
Quali sono le opzioni per la resilienza dei dati?
Memorystore for Valkey offre le seguenti funzionalità per la resilienza dei dati:
Alta disponibilità: Memorystore for Valkey fornisce capacità ridondante nei nodi di replica. In caso di errore, Memorystore for Valkey può utilizzare questa capacità per operare senza tempi di inattività.
Persistenza: quando l'ambiente si arresta in modo anomalo, Memorystore for Valkey lo ripristina automaticamente. Questo meccanismo è noto come persistenza.
Memorystore for Valkey offre il seguente tipo di persistenza:
Persistenza Redis Database (RDB): proteggi i tuoi dati salvando snapshot dei dati in uno spazio di archiviazione durevole. Scegli la frequenza di questi snapshot selezionando un intervallo di snapshot. Se si verificano errori del nodo, puoi recuperare i dati anche quando il failover non è possibile.
Persistenza dei file di sola aggiunta (AOF): utilizza questo tipo di persistenza quando vuoi dare la priorità alla durabilità dei dati. La persistenza AOF archivia i dati in modo duraturo registrando ogni comando di scrittura in un file di log chiamato file AOF. Se si verifica un errore o un riavvio del sistema, il server riproduce i comandi del file AOF in sequenza per ripristinare i dati.
Backup: ripristina manualmente le istanze Memorystore for Valkey in un momento specifico. Inoltre, puoi utilizzare i backup per esportare e analizzare i dati.
I backup sono utili per i seguenti scenari:
- Ripristino di emergenza: utilizza i backup nell'ambito di un piano di ripristino di emergenza. In caso di disastro, puoi ripristinare i dati in una nuova istanza Memorystore for Valkey.
- Migrazione dei dati: esegui la migrazione dei dati tra diverse istanze Memorystore for Valkey. Puoi consolidare i dati o spostarli in un'altra regione. Puoi anche ripristinare i backup dalle istanze Memorystore for Valkey.
- Condividi dati: condividi dati tra team o applicazioni diversi. Ciò consente la collaborazione, l'analisi dei dati offline e lo scambio di dati.
- Conformità: crea backup periodici dei dati della cache per scopi di conformità.
- Pianificare i backup: oltre a creare un backup on demand, puoi configurare una pianificazione del backup per un'istanza. Di conseguenza, Memorystore for Valkey avvia backup periodici per l'istanza.
Replica tra regioni: crea istanze secondarie da un'istanza primaria per rendere la tua istanza disponibile per le letture in regioni diverse. Le istanze secondarie forniscono anche ridondanza per scenari diripristino di emergenzay in caso di interruzioni del servizio regionali.
La replica tra regioni su Memorystore for Valkey offre i seguenti vantaggi:
- Disaster recovery: se la regione dell'istanza primaria non è più disponibile, puoi scollegare o eseguire il failover a un'istanza secondaria in un'altra regione per gestire le richieste di lettura e scrittura. Le istanze secondarie gestiscono le richieste di lettura senza emettere un comando di failover o distacco.
- Dati distribuiti geograficamente: la distribuzione geografica dei dati li avvicina a te e riduce la latenza di lettura.
- Bilanciamento del carico geografico per il traffico di lettura: se in una regione si verificano connessioni lente o sovraccariche, puoi instradare il traffico verso un'altra regione.
Come si ottengono le migliori prestazioni per la tua istanza?
Per ottimizzare il rendimento della tua istanza Memorystore for Valkey, procedi nel seguente modo:
- Segui le best practice per la gestione della memoria e l'utilizzo della CPU, perché queste pratiche garantiscono il miglior rendimento per la tua istanza.
- Utilizza gli audit log per
monitorare l'accesso alla tua istanza. Di conseguenza, puoi determinare se
ci sono problemi associati all'attività dell'amministratore per l'istanza
(il log di controllo
Admin Activity
) o agli utenti che accedono ai dati dell'istanza (il log di controlloData Access
). - Utilizza le repliche di lettura. In Memorystore for Valkey, la replica è asincrona. Pertanto, i dati nel nodo primario non vengono visualizzati immediatamente nelle repliche. Se puoi gestire dati leggermente obsoleti, utilizza le repliche di lettura. Ciò ti offre miglioramenti significativi della velocità effettiva di lettura e della latenza.
Evita di utilizzare comandi Valkey che consumano molte risorse. L'utilizzo di questi comandi potrebbe comportare i seguenti problemi di prestazioni:
- Latenza elevata e timeout del client
- Pressione della memoria causata da comandi che aumentano l'utilizzo della memoria
- Perdita di dati durante la replica e la sincronizzazione dei nodi perché il thread principale di Valkey è bloccato
- Controlli di integrità, osservabilità e replica con risorse insufficienti
Anziché utilizzare questi comandi, utilizza comandi più efficienti in termini di risorse. Ad esempio, per eseguire la scansione dell'intero spazio delle chiavi, non utilizzare il comando
KEYS
. Utilizza inveceSCAN
.Per ulteriori informazioni sui comandi Valkey che richiedono molte risorse e sulle loro alternative efficienti, consulta Comandi Valkey che richiedono molte risorse.
Se le esigenze della tua attività ti consentono di impostare un tempo di scadenza per i tuoi dati, ti consigliamo di farlo. L'impostazione di un tempo di scadenza riduce il consumo di memoria.
Esegui l'upgrade della versione della tua istanza Memorystore for Valkey all'ultima versione dell'istanza. Le versioni più recenti del software presentano miglioramenti in termini di affidabilità e prestazioni.
Modifica il valore del parametro
maxmemory-policy
. Questo parametro specifica il comportamento di Valkey quando i dati dell'istanza raggiungono il limitemaxmemory
.Quando la memoria dell'istanza è piena e arriva una nuova scrittura, Valkey elimina le chiavi per fare spazio alla scrittura in base al criterio
maxmemory
dell'istanza. Se il valore del parametro
maxmemory-policy
è impostato sunoeviction
, Memorystore for Valkey restituisce un errore quando l'istanza raggiunge la memoria massima. Tuttavia, Memorystore for Valkey non sovrascrive né espelle i dati. Per migliorare la disponibilità dell'istanza, modifica il valore del parametromaxmemory-policy
in modo che Memorystore for Valkey possa eliminare le chiavi.Per ulteriori informazioni sui diversi valori che puoi impostare per il parametro
maxmemory-policy
, consulta Criteri Maxmemory. Per ulteriori informazioni sull'aggiornamento di questo parametro, consulta Aggiornare un parametro di configurazione.Ottimizza l'istanza Memorystore for Valkey in modo che abbia il percentuale successi cache che preferisci. In questo modo, puoi dimensionare correttamente il database in modo che possa gestire la percentuale appropriata di hit.
Per ottimizzare un'istanza:
- Utilizza le metriche di monitoraggio
total_keyspace_hits_count
etotal_keyspace_misses_count
per determinare il numero totale di ricerche di chiavi riuscite per l'istanza e il numero totale di ricerche di chiavi non riuscite per l'istanza, rispettivamente. - Dividi il numero totale di hit per il numero totale di hit e mancati
(ovvero hit/(hit + mancati)). Il quoziente è la percentuale di successi. - Per ottimizzare l'istanza in modo da ottenere l'hit ratio più adatto a te, scalala. Puoi aumentare o diminuire il numero di shard oppure aumentare o diminuire il tipo di nodo. Per saperne di più, consulta Informazioni sulla scalabilità della capacità dell'istanza.
L'aumento del tasso di hit migliora la latenza e la velocità effettiva del sistema. Trova l'equilibrio che ti consente di raggiungere i tuoi obiettivi di rendimento, scalabilità e costi.
- Utilizza le metriche di monitoraggio
Per impostazione predefinita, ti consigliamo di eseguire benchmark delle prestazioni sull'istanza per determinare se un numero maggiore di connessioni aumenta le prestazioni senza saturare le connessioni. Il punto di partenza consigliato è configurare il client in modo che apra una connessione a ogni nodo Valkey.
Attiva il pipelining per il tuo cliente in modo che possa elaborare più richieste e più rapidamente. Per configurare il pipelining, utilizza la libreria client. Per saperne di più, consulta la documentazione associata a questa libreria.
Come puoi ottimizzare l'alta affidabilità per la tua istanza?
Ti consigliamo di creare istanze multizona ad alta disponibilità anziché istanze a zona singola, perché offrono una migliore affidabilità.
Se crei un'istanza ad alta disponibilità, ti consigliamo di utilizzare la metrica
/instance/node/replication/offset
. Utilizzando questa metrica,
puoi monitorare l'offset di replica (in byte) per un singolo nodo nella tua
istanza. L'offset di replica è il numero di byte che
Memorystore for Valkey non ha replicato tra il nodo primario e le repliche di lettura.