Problemen met Azure Cache voor Redis aan serverzijde oplossenTroubleshoot Azure Cache for Redis server-side issues

In deze sectie vindt u informatie over het oplossen van problemen die zich voordoen als gevolg van een voor waarde in een Azure-cache voor redis of de virtuele machine (s) die de host heeft.This section discusses troubleshooting issues that occur because of a condition on an Azure Cache for Redis or the virtual machine(s) hosting it.

Notitie

Enkele van de stappen voor probleem oplossing in deze hand leiding bevatten instructies voor het uitvoeren van redis-opdrachten en het controleren van verschillende prestatie gegevens.Several of the troubleshooting steps in this guide include instructions to run Redis commands and monitor various performance metrics. Zie de artikelen in de sectie met aanvullende informatie voor meer informatie en instructies.For more information and instructions, see the articles in the Additional information section.

Geheugendruk op Redis-serverMemory pressure on Redis server

Geheugen druk aan de server zijde leidt tot allerlei prestatie problemen die het verwerken van aanvragen kunnen vertragen.Memory pressure on the server side leads to all kinds of performance problems that can delay processing of requests. Wanneer geheugen druk treffers zijn, kunnen er gegevens naar de schijf worden gewisseld.When memory pressure hits, the system may page data to disk. Als gevolg van deze pagina fout wordt het systeem aanzienlijk trager.This page faulting causes the system to slow down significantly. Er zijn verschillende mogelijke oorzaken van deze geheugen belasting:There are several possible causes of this memory pressure:

  • De cache wordt gevuld met gegevens in de buurt van de maximale capaciteit.The cache is filled with data near its maximum capacity.
  • Redis ziet u hoog geheugen fragmentatie.Redis is seeing high memory fragmentation. Deze fragmentatie wordt meestal veroorzaakt door het opslaan van grote objecten omdat redis is geoptimaliseerd voor kleine objecten.This fragmentation is most often caused by storing large objects since Redis is optimized for small objects.

Redis maakt twee statistieken beschikbaar via de opdracht info , waarmee u dit probleem kunt identificeren: ' used_memory ' en ' used_memory_rss '.Redis exposes two stats through the INFO command that can help you identify this issue: "used_memory" and "used_memory_rss". U kunt Deze metrische gegevens weer geven met behulp van de portal.You can view these metrics using the portal.

Er zijn verschillende mogelijke wijzigingen die u kunt aanbrengen om het geheugengebruik in balans te houden:There are several possible changes you can make to help keep memory usage healthy:

  • Configureer een geheugen beleid en stel verval tijden in voor uw sleutels.Configure a memory policy and set expiration times on your keys. Dit beleid is mogelijk niet voldoende als u te maken hebt met fragmentatie.This policy may not be sufficient if you have fragmentation.
  • Configureer een maxmemory-gereserveerde waarde die groot genoeg is voor het compenseren van geheugen fragmentatie.Configure a maxmemory-reserved value that is large enough to compensate for memory fragmentation.
  • Splits uw grote objecten in de cache op in kleinere gerelateerde objecten.Break up your large cached objects into smaller related objects.
  • Maak waarschuwingen voor metrische gegevens, zoals het gebruikte geheugen, zodat u tijdig een melding krijgt over mogelijke gevolgen.Create alerts on metrics like used memory to be notified early about potential impacts.
  • Schaal naar een grotere cache grootte met meer geheugen capaciteit.Scale to a larger cache size with more memory capacity.

Hoog CPU-gebruik of server belastingHigh CPU usage or server load

Een hoge belasting van de server of het CPU-gebruik betekent dat de server niet tijdig aanvragen kan verwerken.A high server load or CPU usage means the server can't process requests in a timely fashion. Het kan lang duren voordat de server reageert en de aanvraag frequentie niet kan worden bijgehouden.The server may be slow to respond and unable to keep up with request rates.

Meet waarden bewaken , zoals CPU of server belasting.Monitor metrics such as CPU or server load. Bekijk pieken in het CPU-gebruik die overeenkomen met time-outs.Watch for spikes in CPU usage that correspond with timeouts.

Er zijn verschillende wijzigingen die u kunt aanbrengen om de belasting van hoge servers te beperken:There are several changes you can make to mitigate high server load:

  • Onderzoek wat er kan leiden tot CPU-pieken, zoals langlopende opdrachten die hieronder worden vermeld of waarvoor de pagina fouten zijn veroorzaakt door een hoge geheugen belasting.Investigate what is causing CPU spikes such as long-running commands noted below or page faulting because of high memory pressure.
  • Maak waarschuwingen voor metrische gegevens, zoals CPU of server belasting, om te worden geïnformeerd over mogelijke gevolgen.Create alerts on metrics like CPU or server load to be notified early about potential impacts.
  • Schaal naar een grotere cache grootte met meer CPU-capaciteit.Scale to a larger cache size with more CPU capacity.

Langlopende opdrachtenLong-running commands

Sommige redis-opdrachten zijn duurder om uit te voeren dan andere.Some Redis commands are more expensive to execute than others. In de documentatie voor redis-opdrachten wordt de tijd complexiteit van elke opdracht weer gegeven.The Redis commands documentation shows the time complexity of each command. Omdat de verwerking van redis-opdrachten uit één thread bestaat, worden alle andere opdrachten die na het uitvoeren van de opdracht worden uitgevoerd, geblokkeerd.Because Redis command processing is single-threaded, a command that takes time to run will block all others that come after it. Bekijk de opdrachten die u aan uw redis-server uitgeeft om inzicht te krijgen in de gevolgen van de prestaties.You should review the commands that you're issuing to your Redis server to understand their performance impacts. De opdracht sleutels wordt bijvoorbeeld vaak gebruikt zonder te weten dat het een O (N)-bewerking is.For instance, the KEYS command is often used without knowing that it's an O(N) operation. U kunt sleutels voor komen door scans te gebruiken om CPU-pieken te verminderen.You can avoid KEYS by using SCAN to reduce CPU spikes.

Met de SLOWLOG -opdracht kunt u dure opdrachten meten die worden uitgevoerd op de server.Using the SLOWLOG command, you can measure expensive commands being executed against the server.

Bandbreedtebeperking aan serverzijdeServer-side bandwidth limitation

Verschillende cache grootten hebben verschillende capaciteit voor netwerk bandbreedte.Different cache sizes have different network bandwidth capacities. Als de server de beschik bare band breedte overschrijdt, worden de gegevens niet snel naar de client verzonden.If the server exceeds the available bandwidth, then data won't be sent to the client as quickly. Clients kunnen een time-out hebben omdat de server geen gegevens snel genoeg kan pushen naar de client.Clients requests could time out because the server can't push data to the client fast enough.

De metrische gegevens ' cache read ' en ' cache write ' kunnen worden gebruikt om te zien hoeveel band breedte aan de server zijde wordt gebruikt.The "Cache Read" and "Cache Write" metrics can be used to see how much server-side bandwidth is being used. U kunt Deze metrische gegevens weer geven in de portal.You can view these metrics in the portal.

Voor het beperken van situaties waarbij het netwerk bandbreedte gebruik bijna de maximale capaciteit heeft:To mitigate situations where network bandwidth usage is close to maximum capacity:

  • Wijzig het gedrag van de client aanroep om de netwerk vraag te verminderen.Change client call behavior to reduce network demand.
  • Maak waarschuwingen voor metrische gegevens, zoals het lezen van de cache of schrijven naar de cache, zodat u tijdig een melding krijgt over mogelijke gevolgen.Create alerts on metrics like cache read or cache write to be notified early about potential impacts.
  • Schaal naar een grotere cache grootte met meer capaciteit voor netwerk bandbreedte.Scale to a larger cache size with more network bandwidth capacity.

Aanvullende informatieAdditional information