Domande frequenti su Memorystore for Valkey

In questa pagina sono riportate le risposte alle seguenti domande frequenti (FAQ) sull'utilizzo di Memorystore for Valkey:

Quanta memoria e CPU consigliamo di utilizzare?

Ti consigliamo di non superare l'80% di memoria utilizzata. Ti consigliamo inoltre di mantenere 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 capacità totale. In questo scenario, l'utilizzo medio della CPU sui nodi rimanenti è di circa il 90%.

Come si monitora la quantità di CPU e memoria utilizzata?

Per monitorare l'utilizzo della CPU sia per il nodo Memorystore for Valkey principale sia per le repliche di lettura, utilizza la /instance/cpu/maximum_utilization metrica. Questa metrica misura l'utilizzo massimo della CPU in tutti i nodi dell'istanza, da 0,0 (0%) a 1,0 (100%). Per ulteriori informazioni, consulta le best practice per l'utilizzo della CPU.

Per monitorare la memoria utilizzata dal nodo Memorystore for Valkey principale e dalle repliche di lettura, utilizza la metrica /instance/node/memory/utilization. Questa metrica misura l'utilizzo della memoria per un singolo nodo dell'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 /instance/memory/maximum_utilization metrica supera una soglia che hai impostato. Per ulteriori informazioni, consulta Impostare un avviso di monitoraggio per la memoria utilizzata.

Quante connessioni dall'applicazione client consigliamo di mantenere aperte?

Ti consigliamo di utilizzare i benchmark per il client per determinare l'impostazione ottimale. Il punto di partenza consigliato per ogni client è una connessione per nodo Valkey. Per ulteriori informazioni, consulta Evitare il sovraccarico di connessioni su Valkey.

Ti consigliamo inoltre di abilitare il pipelining per il client in modo che possa elaborare più richieste e più velocemente.

Come si monitora il numero di connessioni client per l'istanza?

Per monitorare il numero di connessioni client utilizzate, utilizza la metrica /instance/node/clients/connected_clients. Questa metrica misura il numero di client connessi a ogni nodo dell'istanza.

Cosa si fa se si hanno troppe connessioni client?

Il numero massimo di connessioni client, che puoi trovare utilizzando la /instance/clients/maximum_connected_clients metrica, deve essere inferiore al valore associato al maxclients parametro. Se i valori sono uguali, procedi nel seguente modo:

Supponiamo che tu abbia un evento imminente che aumenterà il traffico per la tua attività. Cosa fai?

Puoi configurare Memorystore for Valkey in base alle esigenze della tua attività. In questo scenario, puoi aumentare la capacità dell'istanza nei seguenti modi:

  • Puoi aggiungere shard all'istanza. In questo modo, l'istanza ha un maggiore utilizzo della CPU per gestire un volume maggiore di dati o traffico. La capacità dell'istanza è determinata dal numero di shard nell'istanza. Aggiungendo shard, l'applicazione può gestire una maggiore domanda senza un calo del rendimento.
  • 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 a highmem-medium.

Ti consigliamo di aumentare la capacità dell'istanza alcuni giorni prima dell'evento. Inoltre, per aiutarti a scalare la capacità dell'istanza e per aumentare la velocità e l'affidabilità della scalabilità, esegui lo scale up durante i periodi di traffico ridotto. Per scoprire come monitorare il traffico dell'istanza, consulta Monitorare le istanze.

Come si proteggono i dati?

Per proteggere i dati, Memorystore for Valkey ti fornisce i seguenti meccanismi:

  • **Autenticazione IAM (Identity and Access Management)**: utilizza IAM per gestire l'accesso con le credenziali per gli utenti e gli account di servizio. L'autenticazione basata su IAM si integra con Valkey AUTH, consentendoti di ruotare le credenziali (token IAM) senza problemi senza dover utilizzare password statiche.
  • Crittografia in transito: cripta 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 che non sono configurati per TLS vengono 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 le seguenti best practice:

  • Per connettere l'applicazione a un'istanza di Memorystore for Valkey con la modalità cluster abilitata, utilizza un client che ti consigliamo, ad esempio valkey-go, iovalkey, valkey-py o Valkey GLIDE.

    Se utilizzi un client diverso, assicurati di utilizzare un client Valkey compatibile con i cluster che mantenga una mappa degli slot hash ai nodi corrispondenti nell'istanza. Di conseguenza, le richieste possono essere inviate ai nodi corretti. In questo modo si evita il sovraccarico del rendimento causato dai reindirizzamenti. Per ulteriori informazioni, consulta le best practice per i 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 timeout con intervalli più brevi, Memorystore for Valkey potrebbe riscontrare 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 ti offre le seguenti funzionalità per la resilienza dei dati:

  • Alta affidabilità: Memorystore for Valkey fornisce capacità ridondante nei nodi di replica. Se si verifica un errore, Memorystore for Valkey può utilizzare questa capacità per operare senza tempi di inattività.

  • Persistenza: quando l' ambiente si arresta in modo imprevisto, Memorystore for Valkey ripristina automaticamente l' ambiente. Questa operazione è nota come persistenza.

    Memorystore for Valkey offre il seguente tipo di persistenza:

    • Persistenza RDB (Redis Database): proteggi i 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 dei nodi, puoi recuperare i dati anche quando il failover non è possibile.

    • Persistenza AOF (Append-Only File): utilizza questo tipo di persistenza quando vuoi dare la priorità alla durabilità dei dati. La persistenza AOF archivia i dati in modo durevole registrando ogni comando di scrittura in un file di log denominato 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 di Memorystore for Valkey a un momento specifico. Inoltre, puoi utilizzare i backup per esportare e analizzare i dati.

    I backup sono utili nei seguenti scenari:

    • Disaster recovery: utilizza i backup come parte di un piano di ripristino di emergenza. Se si verifica un'emergenza, puoi ripristinare i dati in una nuova istanza di Memorystore for Valkey.
    • Migrazione dei dati: esegui la migrazione dei dati tra diverse istanze di Memorystore for Valkey. Puoi consolidare i dati o spostarli in un'altra regione. Puoi anche ripristinare i backup dalle istanze di Memorystore for Valkey.
    • Condividi dati: condividi i dati tra team o applicazioni diversi. In questo modo è possibile collaborare, eseguire analisi dei dati offline e scambiare dati.
    • Conformità: crea backup periodici dei dati della cache per scopi di conformità
    • Pianifica i backup: oltre a creare un backup on demand, puoi configurare una pianificazione dei backup per un'istanza. Di conseguenza, Memorystore for Valkey avvia backup periodici per l'istanza.
  • Replica tra regioni: crea istanze secondarie da un'istanza principale per rendere l'istanza disponibile per le letture in regioni diverse. Le istanze secondarie forniscono anche ridondanza per gli scenari di ripristino di emergenza in caso di interruzioni regionali.

    La replica tra regioni su Memorystore for Valkey offre i seguenti vantaggi:

    • Disaster recovery: se la regione dell'istanza principale non è 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 scollegamento.
    • Dati distribuiti geograficamente: la distribuzione geografica dei dati li avvicina e riduce la latenza di lettura.
    • Bilanciamento del carico geografico per il traffico di lettura: se si verificano connessioni lente o sovraccariche in una regione, puoi instradare il traffico verso un'altra regione.

Come si ottengono le migliori prestazioni per l'istanza?

Per ottimizzare il rendimento dell'istanza di Memorystore for Valkey:

  • Segui le best practice per la gestione della memoria e l'utilizzo della CPU, perché queste pratiche garantiscono il miglior rendimento per l'istanza.
  • Utilizza gli audit log per monitorare l'accesso all'istanza. Di conseguenza, puoi determinare se ci sono problemi associati all'attività dell'amministratore per l'istanza (audit log Admin Activity) o agli utenti che accedono ai dati dell'istanza (audit log Data Access).
  • Utilizza le repliche di lettura. In Memorystore for Valkey, la replica è asincrona. Pertanto, i dati nel nodo principale non vengono visualizzati immediatamente nelle repliche. Se puoi gestire dati leggermente obsoleti, utilizza le repliche di lettura. In questo modo, si ottengono miglioramenti significativi della velocità effettiva di lettura e della latenza.
  • Evita di utilizzare comandi Valkey che richiedono molte risorse. L'utilizzo di questi comandi potrebbe causare i seguenti problemi di rendimento:

    • Latenza elevata e timeout del client
    • Pressione della memoria causata da comandi che aumentano la memoria utilizzata
    • Perdita di dati durante la replica e la sincronizzazione dei nodi perché il thread principale di Valkey è bloccato
    • Controlli di integrità, osservabilità e replica insufficienti

    Anziché utilizzare questi comandi, utilizza comandi più efficienti in termini di risorse. Ad esempio, per eseguire la scansione dell'intero keyspace, non utilizzare il comando KEYS. Utilizza invece SCAN.

    Per ulteriori informazioni sui comandi Valkey che richiedono molte risorse e sulle alternative efficienti in termini di risorse, consulta Comandi Valkey che richiedono molte risorse.

  • Se le esigenze della tua attività ti consentono di impostare un tempo di scadenza per i dati, ti consigliamo di farlo. L'impostazione di un tempo di scadenza riduce il consumo di memoria.

  • Esegui l'upgrade della versione dell'istanza di Memorystore for Valkey all'ultima versione dell'istanza. Le versioni software più recenti presentano miglioramenti in termini di affidabilità e rendimento.

  • Modifica il valore del parametro maxmemory-policy. Questo parametro specifica il comportamento di Valkey quando i dati dell'istanza raggiungono il limite maxmemory.

    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
    maxmemory-policy parametro è impostato su noeviction, Memorystore for Valkey restituisce un errore quando l'istanza raggiunge la memoria massima. Tuttavia, Memorystore for Valkey non sovrascrive né elimina i dati. Per migliorare la disponibilità dell'istanza, modifica il valore del parametro maxmemory-policy in modo che Memorystore for Valkey possa eliminare le chiavi.

    Per ulteriori informazioni sui diversi valori che puoi impostare per il maxmemory-policy parametro, consulta Criteri maxmemory. Per ulteriori informazioni sull'aggiornamento di questo parametro, consulta Aggiornare un parametro di configurazione.

  • Ottimizza l'istanza di Memorystore for Valkey in modo che abbia la percentuale successi cache desiderata. In questo modo, puoi dimensionare correttamente il database in modo che possa gestire la percentuale appropriata di hit.

    Per ottimizzare un'istanza:

    1. Utilizza le metriche di monitoraggio total_keyspace_hits_count e total_keyspace_misses_count per determinare rispettivamente il numero totale di ricerche di chiavi riuscite per l'istanza e il numero totale di ricerche di chiavi non riuscite per l'istanza.
    2. Dividi il numero totale di hit per il numero totale di hit e miss
      (ovvero hit/(hit + miss)). Il quoziente è il tasso di hit.
    3. Per ottimizzare l'istanza in modo da ottenere il tasso di hit più adatto alle tue esigenze, esegui lo scale dell'istanza. Puoi eseguire lo scale up o lo scale down del numero di shard oppure eseguire lo scale up o lo scale down del tipo di nodo. Per ulteriori informazioni, 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 funziona per i tuoi obiettivi di rendimento, scalabilità e costi.

  • Per impostazione predefinita, ti consigliamo di eseguire benchmark del rendimento sull'istanza per determinare se un numero maggiore di connessioni aumenta il rendimento senza saturare le connessioni. Il punto di partenza consigliato è configurare il client in modo che apra una connessione a ogni nodo Valkey.

  • Abilita il pipelining per il client in modo che possa elaborare più richieste e più velocemente. Per configurare il pipelining, utilizza la libreria client. Per ulteriori informazioni, consulta la documentazione associata a questa libreria.

Come si può ottimizzare l'alta affidabilità per l'istanza?

Ti consigliamo di creare istanze multizona a elevata disponibilità anziché istanze a zona singola, perché offrono una maggiore affidabilità.

Se crei un'istanza a elevata disponibilità, ti consigliamo di utilizzare la /instance/node/replication/offset metrica. Utilizzando questa metrica, puoi monitorare l'offset di replica (in byte) per un singolo nodo dell'istanza. L'offset di replica è il numero di byte che Memorystore for Valkey non ha replicato tra il nodo principale e le repliche di lettura.