Risolvere i problemi del server della cache di Azure per Redis

Questa sezione illustra la risoluzione dei problemi causati da condizioni in un server cache di Azure per Redis o in una delle macchine virtuali che lo ospitano.

Nota

Diversi passaggi per la risoluzione dei problemi illustrati in questa guida includono istruzioni per eseguire comandi di Redis e monitorare svariate metriche delle prestazioni. Per altre informazioni e istruzioni, vedere gli articoli della sezione Informazioni aggiuntive .

Carico elevato del server

Un carico elevato del server significa che il server Redis è occupato e non è in grado di mantenere il passo con le richieste, il che causa i timeout. Controllare la metrica di carico server nella cache selezionando Monitoraggio dal menu Risorsa a sinistra. Nel riquadro di lavoro viene visualizzato il grafico del carico del server in Insights. In alternativa, aggiungere un set di metriche su Carico server in Metriche.

Di seguito sono riportate alcune opzioni da considerare per il carico del server elevato.

Aumentare o aumentare il numero di scalabilità

Aumentare la scalabilità per aggiungere altre partizioni, in modo che il carico venga distribuito in più processi Redis. Si consideri anche il ridimensionamento fino a una dimensione della cache più grande con più core CPU. Per altre informazioni, vedere domande frequenti sulla pianificazione di cache di Azure per Redis.

Modifiche rapide nel numero di connessioni client

Per altre informazioni, vedere Evitare picchi di connessione client.

Comandi a esecuzione prolungata o costoso

Questa sezione è stata spostata. Per altre informazioni, vedere Comandi a esecuzione prolungata.

Scalabilità

Le operazioni di ridimensionamento sono intensivo della CPU e della memoria, in quanto potrebbero comportare lo spostamento dei dati intorno ai nodi e la modifica della topologia del cluster. Per altre informazioni, vedere Ridimensionamento.

Manutenzione del server

Se il cache di Azure per Redis ha eseguito un failover, tutte le connessioni client dal nodo che sono state trasferite al nodo che è ancora in esecuzione. Il carico del server potrebbe aumentare a causa dell'aumento delle connessioni. È possibile provare a riavviare le applicazioni client in modo che tutte le connessioni client vengano ricreate e ridistribuite tra i due nodi.

Uso elevato della memoria

L'utilizzo elevato della memoria nel server può causare diversi tipi di problemi di prestazioni che possono ritardare l'elaborazione delle richieste. Quando si verifica un utilizzo elevato di memoria, il sistema esegue il paging dei dati su disco, il che comporta rallentamenti significativi.

Ecco alcune possibili cause di pressione di memoria:

  • La cache viene riempita con dati vicino alla capacità massima
  • Il server Redis visualizza la frammentazione elevata della memoria

La frammentazione potrebbe essere causata quando un modello di carico archivia i dati con una variazione elevata di dimensioni. Ad esempio, la frammentazione può verificarsi quando i dati vengono distribuiti tra 1 KB e 1 MB di dimensioni. Quando una chiave da 1 KB viene eliminata dalla memoria esistente, una chiave da 1 MB non può adattarsi a causa della frammentazione. Analogamente, se la chiave da 1 MB viene eliminata e viene aggiunta una chiave da 1,5 MB, non può essere adattata alla memoria recuperata esistente. Ciò causa la memoria libera inutilizzata e comporta una maggiore frammentazione.

Se il valore è superiore a 1,5 volte la used_memory_rssused_memory metrica, è presente una frammentazione in memoria. La frammentazione può causare problemi quando:

  1. L'utilizzo della memoria è vicino al limite massimo di memoria per la cache o
  2. UsedMemory_RSS è superiore al limite massimo di memoria, causando potenzialmente errori di pagina in memoria.

Se una cache è frammentata ed è in esecuzione con pressione elevata sulla memoria, il sistema esegue un failover per provare a recuperare la memoria RSS (Resident Set Size).

Redis espone due statistiche used_memory e used_memory_rss, tramite il comando INFO che consente di identificare questo problema. È possibile visualizzare queste metriche usando il portale.

Verificare che i maxmemory-reserved valori e maxfragmentationmemory-reserved siano impostati in modo appropriato.

È possibile apportare diverse modifiche che consentono di mantenere integro l'utilizzo della memoria:

Per raccomandazioni sulla gestione della memoria, vedere Procedure consigliate per la gestione della memoria.

Comandi a esecuzione prolungata

Questa sezione è stata spostata. Per altre informazioni, vedere Comandi a esecuzione prolungata.

Limitazione della larghezza di banda lato server

Questa sezione è stata spostata. Per altre informazioni, vedere Limitazione della larghezza di banda di rete.

Informazioni aggiuntive