Condividi tramite


Gestione della memoria per Azure Redis gestito

In questo articolo viene descritta la gestione efficace della memoria di una cache Redis gestita di Azure.

Informazioni sul modo in cui viene segnalato l'utilizzo della memoria

La metrica Memoria usata segnala la memoria totale utilizzata dal database, incluse tutte le partizioni. Quando la disponibilità elevata è abilitata, questa metrica include la memoria usata dalle partizioni primarie e di replica. Ciò significa che il valore segnalato può essere circa il doppio delle dimensioni del set di dati effettivo.

Ad esempio, se si archiviano 10 GB di dati in una cache con disponibilità elevata abilitata, la metrica Memoria usata segnala circa 20 GB.

La metrica Memoria usata non include la frammentazione della memoria. Il consumo effettivo di memoria fisica nel server può essere maggiore a causa del sovraccarico dell'allocatore. Per altre informazioni sulle metriche incluse, vedere le informazioni di riferimento sui dati di monitoraggio.

Stimare la memoria per la pianificazione della capacità

Quando si pianifica la memoria necessaria, tenere conto di questi fattori oltre le dimensioni effettive dei valori:

  • Overhead per chiave: ogni chiave archiviata in Redis include metadati interni (puntatori, informazioni sul tipo, rilevamento della scadenza). Questo sovraccarico è in genere compreso tra 50 e 100 byte per chiave, a seconda della lunghezza del nome della chiave e del tipo di valore. Per un numero elevato di chiavi di piccole dimensioni, questo sovraccarico può essere significativo.
  • Nomi delle chiavi: La memoria utilizzata per archiviare i nomi delle chiavi si accumula su larga scala. I nomi delle chiavi più brevi consentono di ridurre l'utilizzo della memoria.
  • Registrazione della scadenza: le chiavi con un set di durata (TTL) utilizzano memoria aggiuntiva per la contabilità di scadenza.
  • Replica a disponibilità elevata: con disponibilità elevata abilitata, il set di dati viene replicato. La metrica Memoria usata riflette sia la memoria primaria che quella di replica, ma il limite di memoria dello SKU tiene già conto di questo. Non è necessario scegliere uno SKU più grande per supportare la replica. Selezionare uno SKU in base alle dimensioni effettive del set di dati.

Per controllare il costo esatto della memoria di una chiave specifica, usare il comando Redis MEMORY USAGE :

MEMORY USAGE <your_key_name>

Questo comando restituisce i byte totali utilizzati da una chiave, incluso tutto il sovraccarico interno. Usare questa opzione per convalidare le stime della memoria per chiave rispetto all'utilizzo effettivo.

Criteri di rimozione

Scegliere un criteriodi rimozione che funziona per l'applicazione. Il criterio predefinito per Azure Redis gestito è volatile-lru, il che significa che solo le chiavi con un valore TTL impostato con un comando come EXPIRE sono idonee per l'eliminazione. Se nessuna chiave ha un valore TTL, il sistema non rimuove alcuna chiave. Se si vuole che il sistema consenta la rimozione di qualsiasi chiave in caso di utilizzo elevato della memoria, prendere in considerazione i criteriallkeys-lru.

Scadenza delle chiavi

Impostare un valore di scadenza per le chiavi. Impostare una scadenza consente di rimuovere le chiavi in modo proattivo invece di attendere fino a quando non si verifica un utilizzo elevato della memoria. Quando l'eliminazione viene eseguita a causa di un utilizzo elevato della memoria, può aumentare il carico sul server. Per altre informazioni, vedere la documentazione relativa ai comandi EXPIRE ed EXPIREAT.

Monitorare l'uso della memoria

È consigliabile monitorare la metrica Percentuale memoria usata anziché la memoria usata non elaborata. La metrica percentuale rappresenta già il limite di memoria totale dello SKU, inclusa la replica a disponibilità elevata, in modo da ottenere una visione semplice della vicinanza alla capacità senza dover regolare mentalmente la memoria della replica.

Aggiungere avvisi in Percentuale memoria usata per assicurarsi che non si esaurisca la memoria e che sia possibile ridimensionare la cache prima di visualizzare i problemi. Se la percentuale di memoria usata è costantemente superiore a 75%, prendere in considerazione l'aumento della memoria tramite il ridimensionamento a un livello superiore. Per informazioni sui livelli, vedere Architettura.