Informazioni sulla scalabilità della capacità delle istanze

Questa pagina descrive il comportamento dell'istanza Memorystore for Redis durante la scalabilità.

Puoi scalare la capacità della tua istanza nei seguenti modi:

  • Puoi modificare il numero di shard per la tua istanza. Si tratta di scalabilità orizzontale. Puoi scalare un'istanza orizzontalmente in uno dei seguenti modi:

    • Esegui lo scale out: aumenta la capacità dell'istanza, che offre all'istanza più memoria e potenza di elaborazione per gestire un volume maggiore di dati o traffico. La capacità dell'istanza è determinata dal numero di shard al suo interno.

      Aumentando le dimensioni dell'istanza, la tua applicazione può gestire una domanda in aumento senza un calo delle prestazioni. Per eseguire lo scale out di un'istanza, aggiungi frammenti all'istanza.

    • Scala in: riduci la capacità dell'istanza, diminuendo sia la potenza di elaborazione sia la quantità di memoria disponibile per archiviare i dati. Questo accade quando le richieste di dati dell'applicazione diminuiscono e devi ridurre l'utilizzo delle risorse per risparmiare sui costi. Per eseguire il ridimensionamento di un'istanza, riduci il numero di shard nell'istanza.

  • Puoi modificare il tipo di nodo per l'istanza. Si tratta di scalabilità verticale. Puoi eseguire il ridimensionamento verticale di un'istanza in uno dei seguenti modi:

    • Esegui l'upgrade: aumenta la capacità dell'istanza. La capacità dell'istanza è determinata dal tipo di nodo dell'istanza. Per eseguire l'upgrade di un'istanza, modifica il tipo di nodo in uno più grande. Ad esempio, esegui lo scaling della tua istanza da un tipo di nodo standard-small a un tipo di nodo highmem-medium.
    • Esegui lo scale down: riduci la capacità dell'istanza. Per ridurre la scala di un'istanza, imposta un tipo di nodo più piccolo. Ad esempio, riduci la dimensione dell'istanza da un tipo di nodo highmem-medium a un tipo di nodo standard-small.

Impatto della scalabilità

Durante un'operazione di scalabilità, la disponibilità dell'istanza non viene interessata. Tuttavia, quando modifichi il numero di shard nell'istanza, Memorystore for Redis riequilibra lo spazio chiavi dell'istanza. Ciò potrebbe causare un aumento della latenza durante l'operazione di scalabilità.

Inoltre, l'impatto dell'aumento verticale dell'istanza modificando il tipo di nodo è simile a quanto accade con un'operazione di manutenzione.

Scenari di errore

Se si verifica un errore durante l'operazione di scalabilità, è probabile che si tratti di uno dei seguenti scenari:

  • Vuoi aggiornare il numero di shard per la tua istanza, ma non hai abbastanza memoria libera per il tipo di nodo shared-core-nano della tua istanza.

    Per risolvere il problema, puoi aumentare le dimensioni dell'istanza o liberare memoria dai nodi della tua istanza. Per liberare memoria:

    1. Connettiti a un'istanza Memorystore for Valkey.
    2. Per ottenere i dettagli dell'istanza, inclusi l'indirizzo IP e il numero di porta, utilizza il comando gcloud memorystore instances describe.
    3. Prendi nota dell'indirizzo IP e del numero di porta dell'istanza.
    4. Per ottenere informazioni sui nodi dell'istanza, utilizza il seguente comando:

      valkey-cli -h IP_ADDRESS -p PORT_NUMBER cluster nodes
      

      Sostituisci IP_ADDRESS e PORT_NUMBER con i valori che hai annotato nel passaggio precedente.

    5. Prendi nota dell'indirizzo IP e del numero di porta di un nodo che non ha sufficiente spazio libero. L'ID di questo nodo corrisponde a un ID visualizzato nell'errore.

    6. Per connetterti a questo nodo, utilizza il seguente comando:

      valkey-cli -h IP_ADDRESS -p PORT_NUMBER
      

      Sostituisci IP_ADDRESS e PORT_NUMBER con i valori che hai annotato nel passaggio precedente.

    7. Al prompt, inserisci il comando info memory.

      Nell'output vengono visualizzati i valori per i parametri used_memory e maxmemory. used_memory indica la quantità di memoria utilizzata dal nodo e maxmemory la quantità di memoria disponibile per il nodo.

    8. Dividi il valore del parametro used_memory per il valore del parametro maxmemory e verifica che il quoziente sia superiore al 98%.

    9. Per liberare spazio per il nodo, elimina alcune delle chiavi del nodo.

    10. Inserisci di nuovo il comando info memory. Nell'output, il valore del parametroused_memory è inferiore.

    11. Dividi il valore del parametro used_memory per il valore del parametro maxmemory e verifica che il quoziente sia ora inferiore al 98%. In caso contrario, elimina altre chiavi.

    12. Per gli altri nodi che non dispongono di spazio libero sufficiente, ripeti i passaggi da 4 a 11 di questa procedura.

  • Hai eseguito il ridimensionamento a un numero di shard inferiore che non ha la capacità di contenere tutte le chiavi memorizzate da Memorystore for Valkey nell'istanza originale. Per risolvere il problema, esegui la scalabilità a un numero di shard maggiore in grado di contenere tutte le chiavi memorizzate. Per ulteriori informazioni su come aumentare il numero di frammenti per l'istanza, consulta Eseguire la scalabilità del numero di frammenti.

  • Hai eseguito il ridimensionamento a un tipo di nodo più piccolo che non ha la capacità di contenere tutti i dati archiviati da Memorystore for Valkey nel tipo di nodo originale. In questo caso, Memorystore for Valkey fornisce un tipo di nodo consigliato per lo scale down verticale.

  • Hai aggiornato il tipo di nodo per la tua istanza e hai sovrascritto le impostazioni predefinite per il tipo di nodo originale oppure queste impostazioni sono già state sovrascritte. Tuttavia, il nuovo tipo di nodo scalato non supporta i valori per le impostazioni predefinite o le impostazioni non sono valide per il tipo di nodo. In questo caso, Memorystore for Valkey restituisce un errore. Per risolvere il problema, modifica manualmente le impostazioni in modo che siano valide per il nuovo tipo di nodo.

  • Hai scalato l'istanza durante un periodo di elevata pressione di scrittura (ad esempio, durante i test di carico). Per risolvere il problema, esegui la scalabilità durante i periodi di traffico ridotto delle istanze.

Best practice

Per aiutarti a scalare la capacità della tua istanza e per aumentare la velocità e l'affidabilità della scalabilità, scalala durante i periodi di traffico ridotto, se possibile. Per scoprire come monitorare il traffico delle istanze, consulta Monitorare le istanze.