Risolvere i problemi del lato server di cache di Azure per RedisTroubleshoot Azure Cache for Redis server-side issues

Questa sezione illustra la risoluzione dei problemi che si verificano a causa di una condizione in una cache di Azure per Redis o delle macchine virtuali che lo ospitano.This section discusses troubleshooting issues that occur because of a condition on an Azure Cache for Redis or the virtual machine(s) hosting it.

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.Several of the troubleshooting steps in this guide include instructions to run Redis commands and monitor various performance metrics. Per altre informazioni e istruzioni, vedere gli articoli della sezione Informazioni aggiuntive .For more information and instructions, see the articles in the Additional information section.

Utilizzo elevato di memoria nel server RedisMemory pressure on Redis server

L'utilizzo elevato di memoria sul lato server causa tutti i tipi di problemi di prestazioni che possono ritardare l'elaborazione delle richieste.Memory pressure on the server side leads to all kinds of performance problems that can delay processing of requests. Quando si verifica un utilizzo elevato di memoria, il sistema può eseguire il paging dei dati su disco.When memory pressure hits, the system may page data to disk. Questo errore di pagina causa un rallentamento significativo del sistema.This page faulting causes the system to slow down significantly. Le possibili cause di questo utilizzo elevato di memoria sono diverse:There are several possible causes of this memory pressure:

  • La cache viene riempita con i dati vicino alla capacità massima.The cache is filled with data near its maximum capacity.
  • Redis sta osservando una frammentazione elevata della memoria.Redis is seeing high memory fragmentation. Questa frammentazione è spesso causata dall'archiviazione di oggetti di grandi dimensioni, dal momento che Redis è ottimizzato per oggetti di piccole dimensioni.This fragmentation is most often caused by storing large objects since Redis is optimized for small objects.

Redis espone due statistiche tramite il comando info che consentono di identificare il problema: "used_memory" e "used_memory_rss".Redis exposes two stats through the INFO command that can help you identify this issue: "used_memory" and "used_memory_rss". È possibile visualizzare queste metriche usando il portale.You can view these metrics using the portal.

È possibile apportare diverse modifiche che consentono di mantenere integro l'utilizzo della memoria:There are several possible changes you can make to help keep memory usage healthy:

  • Configurare un criterio di memoria e impostare le ore di scadenza sulle chiavi.Configure a memory policy and set expiration times on your keys. Questo criterio potrebbe non essere sufficiente in caso di frammentazione.This policy may not be sufficient if you have fragmentation.
  • Configurare un valore MaxMemory-reserved sufficientemente grande da compensare la frammentazione della memoria.Configure a maxmemory-reserved value that is large enough to compensate for memory fragmentation.
  • Suddividere gli oggetti di grandi dimensioni memorizzati nella cache in oggetti correlati più piccoli.Break up your large cached objects into smaller related objects.
  • Creare avvisi sulle metriche, ad esempio la memoria usata, per ricevere notifiche tempestive sui possibili effetti.Create alerts on metrics like used memory to be notified early about potential impacts.
  • Ridimensionare le dimensioni della cache con una maggiore capacità di memoria.Scale to a larger cache size with more memory capacity.

Utilizzo CPU elevato o carico serverHigh CPU usage or server load

Un utilizzo elevato del server o della CPU significa che il server non è in grado di elaborare le richieste in modo tempestivo.A high server load or CPU usage means the server can't process requests in a timely fashion. Il server può essere lento a rispondere e non è in grado di soddisfare le tariffe richieste.The server may be slow to respond and unable to keep up with request rates.

Monitorare le metriche , ad esempio il carico della CPU o del server.Monitor metrics such as CPU or server load. Cercare nell'utilizzo della CPU i picchi corrispondenti ai timeout.Watch for spikes in CPU usage that correspond with timeouts.

Sono disponibili diverse modifiche che è possibile apportare per mitigare il carico elevato del server:There are several changes you can make to mitigate high server load:

  • Esaminare gli elementi che causano picchi di CPU, ad esempio i comandi a esecuzione prolungata indicati di seguito o errori di pagina a causa di un elevato utilizzo della memoria.Investigate what is causing CPU spikes such as long-running commands noted below or page faulting because of high memory pressure.
  • Creare avvisi sulle metriche, ad esempio il carico della CPU o del server, per ricevere notifiche tempestive sugli effetti potenziali.Create alerts on metrics like CPU or server load to be notified early about potential impacts.
  • Scalabilità a dimensioni della cache maggiori con maggiore capacità di CPU.Scale to a larger cache size with more CPU capacity.

Comandi con esecuzione prolungataLong-running commands

Alcuni comandi di redis sono più costosi da eseguire rispetto ad altri.Some Redis commands are more expensive to execute than others. La documentazione dei comandi di redis Mostra la complessità temporale di ogni comando.The Redis commands documentation shows the time complexity of each command. Dato che l'elaborazione del comando Redis è a thread singolo, un comando che richiede tempo per l'esecuzione bloccherà tutti gli altri che lo derivano.Because Redis command processing is single-threaded, a command that takes time to run will block all others that come after it. Esaminare i comandi che si stanno inviando al server Redis per comprenderne gli effetti sulle prestazioni.You should review the commands that you're issuing to your Redis server to understand their performance impacts. Ad esempio, il comando Keys viene spesso usato senza sapere che si tratta di un'operazione O (N).For instance, the KEYS command is often used without knowing that it's an O(N) operation. È possibile evitare le chiavi usando Scan per ridurre i picchi della CPU.You can avoid KEYS by using SCAN to reduce CPU spikes.

Utilizzando il comando SLOWLOG , è possibile misurare i comandi costosi eseguiti sul server.Using the SLOWLOG command, you can measure expensive commands being executed against the server.

Limitazione della larghezza di banda lato serverServer-side bandwidth limitation

Diverse dimensioni della cache hanno capacità diverse per la larghezza di banda di rete.Different cache sizes have different network bandwidth capacities. Se il server supera la larghezza di banda disponibile, i dati non verranno inviati al client con la stessa rapidità.If the server exceeds the available bandwidth, then data won't be sent to the client as quickly. È possibile che si verifichi il timeout delle richieste dei client perché il server non è in grado di eseguire il push dei dati al clientClients requests could time out because the server can't push data to the client fast enough.

Per visualizzare la quantità di larghezza di banda sul lato server in uso, è possibile usare le metriche "lettura cache" e "scrittura cache".The "Cache Read" and "Cache Write" metrics can be used to see how much server-side bandwidth is being used. È possibile visualizzare queste metriche nel portale.You can view these metrics in the portal.

Per attenuare le situazioni in cui l'utilizzo della larghezza di banda di rete è prossimo alla capacità massima:To mitigate situations where network bandwidth usage is close to maximum capacity:

  • Modificare il comportamento della chiamata client per ridurre la richiesta di rete.Change client call behavior to reduce network demand.
  • Creare avvisi sulle metriche, ad esempio la lettura della cache o la scrittura nella cache, per ricevere notifiche tempestive sui possibili effetti.Create alerts on metrics like cache read or cache write to be notified early about potential impacts.
  • Scalabilità a dimensioni della cache maggiori con maggiore capacità della larghezza di banda di rete.Scale to a larger cache size with more network bandwidth capacity.

Informazioni aggiuntiveAdditional information