Informazioni sulla scalabilità della capacità delle istanze

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

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

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

    • Scale out: aumenta la capacità dell'istanza, che dispone di più memoria e potenza di elaborazione per gestire un volume maggiore di dati o traffico. La capacità dell'istanza è determinata dal numero di shard nell'istanza.

      Scalando l'istanza, l'applicazione può gestire una maggiore domanda senza un peggioramento delle prestazioni. Per scalare un'istanza, aggiungi shard all'istanza.

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

  • Puoi modificare il tipo di nodo per la tua istanza. Questa operazione viene definita scalabilità verticale. Puoi scalare un'istanza verticalmente in uno dei seguenti modi:

    • Fare lo scale up: aumenta la capacità dell'istanza. La capacità dell'istanza è determinata dal tipo di nodo dell'istanza. Per scalare un'istanza, modifica il tipo di nodo in un tipo di nodo più grande. Ad esempio, esegui lo scale up dell'istanza da un tipo di nodo standard-small a un tipo di nodo highmem-medium.
    • Fare lo scale down: riduci la capacità dell'istanza. Per scalare un'istanza, modifica il tipo di nodo in un tipo di nodo più piccolo. Ad esempio, esegui lo scale down 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 influenzata. Tuttavia, quando modifichi il numero di shard nell'istanza, Memorystore for Valkey ribilancia lo spazio delle chiavi dell'istanza. Ciò potrebbe causare un aumento della latenza durante l'operazione di scalabilità.

Inoltre, l'impatto della scalabilità verticale dell'istanza modificando il tipo di nodo è simile a quello di un'operazione di manutenzione.

Scenari di errore

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

  • Vuoi aggiornare il conteggio degli shard per la tua istanza, ma non hai memoria libera sufficiente per il tipo di nodo shared-core-nano per la tua istanza.

    Per risolvere il problema, puoi eseguire lo scale up dell'istanza o liberare memoria dai nodi della tua istanza. Per liberare memoria:

    1. Connettiti a un'istanza Memorystore for Valkey.
    2. Per visualizzare i dettagli dell'istanza, inclusi l'indirizzo IP e il numero di porta, utilizza il gcloud memorystore instances describe comando.
    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 spazio libero sufficiente. 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 annotati nel passaggio precedente.

    7. Al prompt, inserisci il comando info memory.

      Nell'output vengono visualizzati i valori dei parametri used_memory e maxmemory. used_memory indica la quantità di memoria utilizzata dal nodo e maxmemory indica 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 maggiore del 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 parametro used_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 tutti gli altri nodi che non hanno spazio libero sufficiente, ripeti i passaggi da 4 a 11 di questa procedura.

  • Hai eseguito lo scale down a un conteggio degli shard inferiore che non ha la capacità di contenere tutte le chiavi che Memorystore for Valkey archivia nell'istanza originale. Per risolvere il problema, esegui lo scale up a un conteggio degli shard maggiore in grado di contenere tutte le chiavi archiviate. Per ulteriori informazioni su come aumentare il numero di shard per l'istanza, consulta la sezione Scalare il conteggio degli shard.

  • Hai eseguito lo scale down a un tipo di nodo più piccolo che non ha la capacità di contenere tutti i dati che Memorystore for Valkey archivia nel tipo di nodo originale. In questo caso, Memorystore for Valkey ti fornisce un tipo di nodo consigliato per eseguire fare 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 oppure 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 il test di carico). Per risolvere il problema, esegui la scalabilità durante i periodi di traffico ridotto dell'istanza.

  • Hai uno slot che contiene una chiave di grandi dimensioni e vuoi eseguire la migrazione di questa chiave a un altro nodo. Tuttavia, questo nodo non ha memoria sufficiente per supportare la chiave. Non puoi aggiornare l'istanza. Per risolvere il problema, riduci le dimensioni della chiave in modo che siano inferiori a 128 MB. Quindi, riprova a eseguire l'operazione di aggiornamento.

  • Il numero di slot di proprietà di un nodo di un'istanza non è noto, ma è noto solo l'intervallo di slot. Memorystore for Valkey restituisce un messaggio di errore. In questo caso, riduci le dimensioni della chiave e riprova a eseguire l'operazione di aggiornamento.

  • Hai aumentato la capacità dell'istanza eseguendo lo scale out a un conteggio degli shard inferiore. Tuttavia, Memorystore for Valkey non ha memoria sufficiente per soddisfare questa richiesta. Per risolvere il problema, riduci la capacità dell'istanza eseguendo lo scale in al conteggio degli shard originale e più grande.

Best practice

Per scalare la capacità dell'istanza e aumentare la velocità e l'affidabilità della scalabilità, esegui la scalabilità durante i periodi di traffico ridotto, quando possibile. Per scoprire come monitorare il traffico dell'istanza, consulta la sezione Monitorare le istanze.