Delen via


Geheugenbeheer

Verwijderingsbeleid

Kies een verwijderingsbeleid dat geschikt is voor uw toepassing. Het standaardbeleid voor Azure Cache voor Redis isvolatile-lru, wat betekent dat alleen sleutels waarvoor een TTL-waarde is ingesteld met een opdracht zoals EXPIRE, in aanmerking komen voor verwijdering. Als er geen sleutels een TTL-waarde hebben, worden er geen sleutels door het systeem verwijderd. Als u wilt dat een sleutel wordt verwijderd als deze onder geheugendruk staat, kunt u het allkeys-lru beleid overwegen.

Vervaldatum van sleutels

Stel een vervaldatum in voor uw sleutels. Met een verlooptijd worden sleutels proactief verwijderd in plaats van te wachten totdat er geheugendruk is. Wanneer verwijderingen optreden vanwege geheugendruk, kan dit leiden tot meer belasting op uw server. Zie de documentatie voor de opdrachten EXPIRE en EXPIREAT voor meer informatie.

Geheugenfragmentatie minimaliseren

Grote waarden kunnen geheugenfragmenteren bij verwijdering en kunnen leiden tot een hoog geheugengebruik en serverbelasting.

Geheugengebruik bewaken

Voeg bewaking toe aan het geheugengebruik om ervoor te zorgen dat u geen geheugen meer hebt en de kans hebt om uw cache te schalen voordat u problemen ondervindt.

De instelling maxmemory-reserved configureren

Configureer uw maxmemory-gereserveerde instelling om de reactiesnelheid van het systeem te verbeteren:

  • Een voldoende reserveringsinstelling is met name belangrijk voor schrijfintensieve werkbelastingen of als u waarden van 100 kB of meer in uw cache opslaat. Wanneer u een cache maakt, is standaard ongeveer 10% van het beschikbare geheugen gereserveerd voor maxmemory-reserved. Nog eens 10% is gereserveerd voor maxfragmentationmemory-reserved. U kunt het gereserveerde bedrag verhogen als u veel schrijfbelastingen hebt.

  • De maxmemory-reserved instelling configureert de hoeveelheid geheugen, in MB per exemplaar in een cluster, die is gereserveerd voor niet-cachebewerkingen, zoals replicatie tijdens failover. Door deze waarde in te stellen, zult u merken dat uw Redis-serverervaring consistenter wordt wanneer uw belasting schommelingen vertoont. Deze waarde moet hoger worden ingesteld voor workloads waarbij grote hoeveelheden gegevens worden geschreven. Wanneer er geheugen is gereserveerd voor dergelijke bewerkingen, is dit niet beschikbaar voor de opslag van gegevens in de cache. Het toegestane bereik maxmemory-reserved is 10% - 60% van maxmemory. Als u deze waarden probeert in te stellen die lager zijn dan 10% of hoger dan 60%, worden ze opnieuw geĆ«valueerd en ingesteld op het minimum van 10% en 60%. De waarden worden weergegeven in megabytes.

  • De maxfragmentationmemory-reserved instelling configureert de hoeveelheid geheugen, in MB per exemplaar in een cluster, die is gereserveerd voor geheugenfragmentatie. Wanneer u deze waarde instelt, is de Redis-serverervaring consistenter wanneer de cache vol of bijna vol is en de fragmentatieverhouding hoog is. Wanneer er geheugen is gereserveerd voor dergelijke bewerkingen, is dit niet beschikbaar voor de opslag van gegevens in de cache. Het toegestane bereik maxfragmentationmemory-reserved is 10% - 60% van maxmemory. Als u deze waarden probeert in te stellen die lager zijn dan 10% of hoger dan 60%, worden ze opnieuw geĆ«valueerd en ingesteld op het minimum van 10% en 60%. De waarden worden weergegeven in megabytes.

  • Een ding om rekening mee te houden bij het kiezen van een geheugenreserveringswaarde (maxmemory-reserved of maxfragmentationmemory-reserved) is hoe deze wijziging van invloed kan zijn op een cache met grote hoeveelheden gegevens die al worden uitgevoerd. Als u bijvoorbeeld een cache van 53 GB hebt met de gereserveerde waarden ingesteld op minimaal 10 GB, is het maximale beschikbare geheugen voor het systeem ongeveer 42 GB. Als uw huidige used_memory waarden of uw used_memory_rss waarden hoger zijn dan de limiet van 42 GB, moeten gegevens worden verwijderd totdat beide used_memory en used_memory_rss kleiner zijn dan 42 GB. Verwijdering kan de serverbelasting en geheugenfragmentatie verhogen. Zie Uw eigen metrische gegevens in de cache maken voor meer informatie over metrische gegevens in de cache, zoals used_memory enused_memory_rss.

Notitie

Wanneer u een cache omhoog of omlaag schaalt, worden beide maxmemory-reservedmaxfragmentationmemory-reserved instellingen automatisch geschaald in verhouding tot de cachegrootte. Als maxmemory-reserved bijvoorbeeld is ingesteld op 3 GB op een cache van 6 GB en u schaalt naar 12 GB cache, worden de instellingen automatisch bijgewerkt naar 6 GB tijdens het schalen. Wanneer u omlaag schaalt, gebeurt het omgekeerde. Wanneer u een cache programmatisch omhoog of omlaag schaalt met behulp van PowerShell, CLI of REST API, maxmemory-reserved worden een of maxfragmentationmemory-reserved meer bestanden genegeerd als onderdeel van de updateaanvraag. Alleen uw schaalwijziging wordt gehonoreerd. U kunt deze geheugeninstellingen bijwerken nadat de schaalbewerking is voltooid.

Volgende stappen