Condividi tramite


Risolvere i problemi del server Redis gestito di Azure (anteprima)

Questa sezione illustra la risoluzione dei problemi causati dalle condizioni in un server Redis gestito di Azure (anteprima) 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 .

Utilizzo elevato della CPU

Cpu elevata indica che il server Redis è occupato e non è in grado di tenere il passo con le richieste, causando timeout. Controllare la metrica della CPU nella cache selezionando Monitoraggio dal menu Risorsa a sinistra. Il grafico della CPU viene visualizzato nel riquadro di lavoro in Informazioni dettagliate. In alternativa, aggiungere un set di metriche alla CPU in Metriche.

Di seguito sono riportate alcune opzioni da considerare per un utilizzo elevato della CPU.

Aumentare o passare a un livello di prestazioni superiore

Per prestazioni più elevate, è consigliabile aumentare le dimensioni della cache con più core CPU. Per altre informazioni, vedere Livelli di prestazioni.

Cambiamenti rapidi nel numero di connessioni client

Per altre informazioni, vedere Evitare picchi di connessione client.

Comandi a esecuzione prolungata o costosi

Per altre informazioni, vedere Comandi a esecuzione prolungata.

Scalabilità

Le operazioni di ridimensionamento implicano un uso intensivo della CPU e della memoria perché potrebbero comportare lo spostamento dei dati nei nodi e la modifica della topologia del cluster. Per altre informazioni, vedere Ridimensionamento.

Manutenzione del server

Se Redis gestito di Azure ha subito un failover, tutte le connessioni client dal nodo inattivo vengono trasferite al nodo ancora in esecuzione. La CPU potrebbe aumentare a causa delle connessioni aumentate. È 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 utilizzo elevato della memoria:

  • La cache viene riempita di dati quasi fino alla rispettiva capacità massima
  • Il server Redis riscontra una frammentazione elevata della memoria

È probabile che la frammentazione venga causata quando un modello di carico archivia i dati con una variazione elevata delle 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ò rientrare in essa causando la frammentazione. Analogamente, se viene eliminata una chiave da 1 MB e viene aggiunta una chiave da 1,5 MB, non può rientrare nella memoria recuperata esistente. Ciò comporta un inutilizzo della memoria libera e una maggiore frammentazione.

Se il valore used_memory_rss è superiore a 1,5 volte la metrica used_memory, è 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 un utilizzo elevato della 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.

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

  • Configurare un criterio per la memoria e impostare scadenze per le chiavi. Questo criterio potrebbe non essere sufficiente in caso di frammentazione.
  • Creare avvisi sulle metriche, ad esempio la memoria usata, per ricevere notifiche tempestive sui possibili effetti.
  • Aumentare le dimensioni della cache con una maggiore capacità di memoria. Per altre informazioni, vedere Domande frequenti sulla pianificazione di Redis gestite di Azure.

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

Comandi a esecuzione prolungata

Per altre informazioni, vedere Comandi a esecuzione prolungata.

Limitazione della larghezza di banda lato server

Per altre informazioni, vedere Limitazione della larghezza di banda di rete.

Informazioni aggiuntive