Udostępnij za pośrednictwem


Zarządzanie pamięcią

Zasady eksmisji

Wybierz zasady eksmisji, które działają dla aplikacji. Domyślne zasady dla usługi Azure Cache for Redis to volatile-lru, co oznacza, że tylko klucze, które mają ustawioną wartość czasu wygaśnięcia z poleceniem takim jak EXPIRE , kwalifikują się do eksmisji. Jeśli żadne klucze nie mają wartości czasu wygaśnięcia, system nie wykluczy żadnych kluczy. Jeśli chcesz, aby system zezwolił na eksmitowany dowolny klucz, jeśli jest pod ciśnieniem pamięci, warto rozważyć allkeys-lru zasady.

Wygaśnięcie kluczy

Ustaw wartość wygaśnięcia kluczy. Wygaśnięcie powoduje proaktywne usunięcie kluczy zamiast czekać, aż będzie istnieć wykorzystanie pamięci. W przypadku eksmisji ze względu na wykorzystanie pamięci może to spowodować większe obciążenie serwera. Aby uzyskać więcej informacji, zobacz dokumentację poleceń EXPIRE i EXPIREAT.

Minimalizowanie fragmentacji pamięci

Duże wartości mogą pozostawić pamięć pofragmentowaną na eksmisji i mogą prowadzić do wysokiego użycia pamięci i obciążenia serwera.

Monitoruj użycie pamięci

Dodaj monitorowanie użycia pamięci, aby upewnić się, że nie zabraknie pamięci i masz możliwość skalowania pamięci podręcznej przed wystąpieniami problemów.

Konfigurowanie ustawienia maxmemory-reserved

Skonfiguruj ustawienie maxmemory-reserved, aby poprawić czas reakcji systemu:

  • Wystarczające ustawienie rezerwacji jest szczególnie ważne w przypadku obciążeń z dużym obciążeniem zapisu lub jeśli przechowujesz wartości 100 KB lub więcej w pamięci podręcznej. Domyślnie podczas tworzenia pamięci podręcznej około 10% dostępnej pamięci jest zarezerwowane dla programu maxmemory-reserved. Kolejne 10% jest zarezerwowane dla programu maxfragmentationmemory-reserved. Możesz zwiększyć ilość zarezerwowaną, jeśli masz duże obciążenia zapisu.

  • Ustawienie maxmemory-reserved konfiguruje ilość pamięci w MB na wystąpienie w klastrze, która jest zarezerwowana dla operacji innych niż pamięć podręczna, takich jak replikacja podczas pracy w trybie failover. Ustawienie tej wartości pozwala zwiększyć spójność zachowania serwera Redis przy zmianach obciążenia. Ta wartość powinna być wyższa dla obciążeń zapisujących duże ilości danych. Gdy pamięć jest zarezerwowana dla takich operacji, nie jest dostępna do przechowywania danych w pamięci podręcznej. Dozwolony zakres dla maxmemory-reserved to 10% — 60% wartości maxmemory. Jeśli spróbujesz ustawić te wartości niższe niż 10% lub wyższe niż 60%, zostaną one ponownie ocenione i ustawione na minimum 10% i 60% maksimum. Wartości są renderowane w megabajtach.

  • Ustawienie maxfragmentationmemory-reserved konfiguruje ilość pamięci w MB na wystąpienie w klastrze, która jest zarezerwowana do obsługi fragmentacji pamięci. Po ustawieniu tej wartości środowisko serwera Redis jest bardziej spójne, gdy pamięć podręczna jest pełna lub bliska pełnej, a współczynnik fragmentacji jest wysoki. Gdy pamięć jest zarezerwowana dla takich operacji, nie jest dostępna do przechowywania danych w pamięci podręcznej. Dozwolony zakres dla maxfragmentationmemory-reserved to 10% — 60% wartości maxmemory. Jeśli spróbujesz ustawić te wartości niższe niż 10% lub wyższe niż 60%, zostaną one ponownie ocenione i ustawione na minimum 10% i 60% maksimum. Wartości są renderowane w megabajtach.

  • Jedną z kwestii, które należy wziąć pod uwagę podczas wybierania nowej wartości rezerwacji pamięci (maxmemory-reserved lub maxfragmentationmemory-reserved) jest to, jak ta zmiana może mieć wpływ na pamięć podręczną z dużymi ilościami danych w nim, które są już uruchomione. Na przykład jeśli masz pamięć podręczną 53 GB z 49 GB danych, a następnie zmień wartość rezerwacji na 8 GB, maksymalna dostępna pamięć dla systemu spadnie do 45 GB. Jeśli bieżące used_memory lub used_memory_rss twoje wartości są wyższe niż nowy limit 45 GB, system musi eksmitować dane do momentu, gdy oba used_memory used_memory_rss te wartości będą niższe niż 45 GB. Eksmisja może zwiększyć obciążenie serwera i fragmentację pamięci. Aby uzyskać więcej informacji na temat metryk pamięci podręcznej, takich jak used_memory i , zobacz Tworzenie własnych metrykused_memory_rss.

Uwaga

W przypadku skalowania pamięci podręcznej w górę lub w dół ustawienia i maxmemory-reserved maxfragmentationmemory-reserved są automatycznie skalowane proporcjonalnie do rozmiaru pamięci podręcznej. Jeśli na przykład maxmemory-reserved ustawiono wartość 3 GB w pamięci podręcznej 6 GB, a skalowanie do pamięci podręcznej 12 GB spowoduje automatyczne zaktualizowanie ustawień do 6 GB podczas skalowania. W przypadku skalowania w dół następuje odwrotnie. W przypadku programowego skalowania pamięci podręcznej w górę lub w dół przy użyciu programu PowerShell, interfejsu wiersza polecenia lub interfejsu API REST dowolne maxmemory-reserved lub maxfragmentationmemory-reserved są ignorowane w ramach żądania aktualizacji. Uwzględniana jest tylko zmiana skalowania. Te ustawienia pamięci można zaktualizować po zakończeniu operacji skalowania.

Następne kroki