Delen via


Serverproblemen met Azure Cache voor Redis oplossen

In deze sectie worden problemen besproken die worden veroorzaakt door voorwaarden op een Azure Cache voor Redis-server of een van de virtuele machines die deze hosten.

Notitie

Verschillende van de stappen voor probleemoplossing in deze handleiding bevatten instructies voor het uitvoeren van Redis-opdrachten en het bewaken van verschillende prestatiegegevens. Zie de artikelen in de sectie Aanvullende informatie voor meer informatie en instructies.

Hoge serverbelasting

Hoge serverbelasting betekent dat de Redis-server bezet is en aanvragen niet kan bijhouden, wat tot time-outs kan leiden. Controleer de metrische gegevens voor serverbelasting in uw cache door Bewaking te selecteren in het menu Resource aan de linkerkant. U ziet de grafiek Server laden in het werkvenster onder Inzichten. U kunt ook een metrische set toevoegen aan serverbelasting onder Metrische gegevens.

Hieronder vindt u enkele opties die u kunt overwegen voor hoge serverbelasting.

Omhoog of uitschalen

Schaal uit om meer shards toe te voegen, zodat de belasting wordt verdeeld over meerdere Redis-processen. Overweeg ook om omhoog te schalen naar een grotere cachegrootte met meer CPU-kernen. Zie Azure Cache voor Redis veelgestelde vragen over planningen voor meer informatie.

Snelle wijzigingen in het aantal clientverbindingen

Zie Pieken in clientverbindingen vermijden voor meer informatie.

Langlopende of dure opdrachten

Deze sectie is verplaatst. Zie Langlopende opdrachten voor meer informatie.

Schalen

Schaalbewerkingen zijn CPU- en geheugenintensief, omdat het kan gaan om het verplaatsen van gegevens rond knooppunten en het wijzigen van de clustertopologie. Zie Schalen voor meer informatie.

Serveronderhoud

Als uw Azure Cache voor Redis een failover heeft ondergaan, worden alle clientverbindingen van het knooppunt dat is uitgevallen overgebracht naar het knooppunt dat nog steeds wordt uitgevoerd. De serverbelasting kan pieken vanwege de toegenomen verbindingen. U kunt proberen uw clienttoepassingen opnieuw op te starten, zodat alle clientverbindingen opnieuw worden gemaakt en opnieuw worden gedistribueerd tussen de twee knooppunten.

Hoog geheugengebruik

Geheugendruk op de server kan leiden tot verschillende prestatieproblemen die de verwerking van aanvragen vertragen. Wanneer u te maken krijgt met geheugendruk, worden gegevens door het systeem naar de schijf doorgegeven, waardoor het systeem aanzienlijk langzamer wordt.

Hier volgen enkele mogelijke oorzaken van geheugendruk:

  • De cache wordt gevuld met gegevens in de buurt van de maximale capaciteit
  • Redis-server ziet een hoge geheugenfragmentatie

Fragmentatie wordt waarschijnlijk veroorzaakt wanneer een laadpatroon gegevens met een hoge variatie in grootte opslaat. Fragmentatie kan bijvoorbeeld optreden wanneer gegevens worden verdeeld over 1 kB en 1 MB in grootte. Wanneer een sleutel van 1 kB uit het bestaande geheugen wordt verwijderd, kan een sleutel van 1 MB niet in het geheugen passen, wat fragmentatie veroorzaakt. Als een sleutel van 1 MB wordt verwijderd en een sleutel van 1,5 MB wordt toegevoegd, kan deze niet in het bestaande vrijgemaakte geheugen passen. Dit veroorzaakt ongebruikt vrij geheugen en resulteert in meer fragmentatie.

Als de used_memory_rss waarde hoger is dan 1,5 keer de used_memory metrische waarde, is er fragmentatie in het geheugen. De fragmentatie kan problemen veroorzaken wanneer:

  1. Geheugengebruik ligt dicht bij de maximale geheugenlimiet voor de cache of
  2. UsedMemory_RSS is hoger dan de maximale geheugenlimiet, wat mogelijk resulteert in paginafouten in het geheugen.

Als een cache is gefragmenteerd en onder hoge geheugendruk wordt uitgevoerd, voert het systeem een failover uit om te proberen Resident Set Size (RSS)-geheugen te herstellen.

Redis geeft twee statistieken weer, used_memory en used_memory_rssvia de opdracht INFO waarmee u dit probleem kunt identificeren. U kunt deze metrische gegevens weergeven met behulp van de portal.

Controleer of de maxmemory-reserved waarden maxfragmentationmemory-reserved juist zijn ingesteld.

Er zijn verschillende mogelijke wijzigingen die u kunt aanbrengen om het geheugengebruik in balans te houden:

Zie Best practices voor geheugenbeheer voor aanbevelingen voor geheugenbeheer.

Langlopende opdrachten

Deze sectie is verplaatst. Zie Langlopende opdrachten voor meer informatie.

Bandbreedtebeperking aan serverzijde

Deze sectie is verplaatst. Zie Netwerkbandbreedtebeperking voor meer informatie.

Aanvullende informatie