Geheugenbeheer
Verwijderingsbeleid
Kies een verwijderingsbeleid dat geschikt is voor uw toepassing. Het standaardbeleid voor Azure Cache voor Redis is , wat betekent dat alleen sleutels waarvoor een TTL-waarde is volatile-lru
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 het systeem toestaat dat elke sleutel wordt verwijderd als er sprake is van geheugendruk, kunt u het allkeys-lru
beleid overwegen.
Verlopen van sleutels
Stel een verloopwaarde in voor uw sleutels. Bij een verlooptijd worden sleutels proactief verwijderd in plaats van te wachten totdat er geheugendruk is. Wanneer verwijdering plaatsvindt vanwege geheugenbelasting, 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 geheugenfragmenten achter laten bij verwijdering en kunnen leiden tot een hoog geheugengebruik en een hoge belasting van de server.
Geheugengebruik bewaken
Voeg bewaking van geheugengebruik toe om ervoor te zorgen dat u niet te weinig geheugen hebt en de kans krijgt om uw cache te schalen voordat u problemen ondervindt.
De instelling maxmemory-reserved configureren
Configureer de instelling maxmemory-reserved om de reactiesnelheid van het systeem te verbeteren:
Een voldoende reserveringsinstelling is met name belangrijk voor schrijfbelastingen of als u waarden van 100 kB of meer in uw cache opslaat. Wanneer u een cache maakt, wordt standaard ongeveer 10% van het beschikbare geheugen gereserveerd voor
maxmemory-reserved
. Nog eens 10% is gereserveerd voormaxfragmentationmemory-reserved
. U kunt het gereserveerde bedrag verhogen als u zware schrijfbelastingen hebt.Met
maxmemory-reserved
de instelling configureert u 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 voormaxmemory-reserved
is 10% - 60% vanmaxmemory
. Als u deze waarden lager dan 10% of hoger dan 60% probeert in te stellen, worden ze opnieuw geƫvalueerd en ingesteld op het minimum en 60%. De waarden worden weergegeven in megabytes.Met
maxfragmentationmemory-reserved
de instelling configureert u de hoeveelheid geheugen ,in MB per exemplaar in een cluster, die is gereserveerd voor geheugenfragmentatie. Wanneer u deze waarde instelt, is de Ervaring van de Redis-server consistenter wanneer de cache vol of bijna volledig 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 voormaxfragmentationmemory-reserved
is 10% - 60% vanmaxmemory
. Als u deze waarden lager dan 10% of hoger dan 60% probeert in te stellen, worden ze opnieuw geƫvalueerd en ingesteld op het minimum en 60%. De waarden worden weergegeven in megabytes.Een van de aandachtspunten bij het kiezen van een nieuwe waarde voor geheugenreservering (
maxmemory-reserved
ofmaxfragmentationmemory-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 49 GB aan gegevens en vervolgens de reserveringswaarde wijzigt in 8 GB, wordt het maximaal beschikbare geheugen voor het systeem gedaald naar 45 GB. Als uw huidigeused_memory
of uwused_memory_rss
waarden hoger zijn dan de nieuwe limiet van 45 GB, moet het systeem gegevens verwijderen totdat beideused_memory
enused_memory_rss
kleiner zijn dan 45 GB. Verwijdering kan de serverbelasting en geheugenfragmentatie verhogen. Zie Uw eigen metrische gegevens maken voor meer informatie over metrische gegevens in de cache, zoalsused_memory
enused_memory_rss
.
Notitie
Wanneer u een cache omhoog of omlaag schaalt, worden zowel de instellingen als maxmemory-reserved
maxfragmentationmemory-reserved
de instellingen automatisch geschaald in verhouding tot de grootte van de cache. Als maxmemory-reserved
bijvoorbeeld is ingesteld op 3 GB in 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, worden alle maxmemory-reserved
of maxfragmentationmemory-reserved
genegeerd als onderdeel van de updateaanvraag. Alleen uw schaalwijziging wordt gehonoreerd. U kunt deze geheugeninstellingen bijwerken nadat de schaalbewerking is voltooid.