Správa paměti
Zásady vyřazení
Zvolte zásadu vyřazení, která funguje pro vaši aplikaci. Výchozí zásada pro Azure Cache for Redis je volatile-lru
, což znamená, že k vyřazení mají nárok jenom klíče, které mají nastavenou hodnotu TTL s příkazem, jako je EXPIR . Pokud žádné klíče nemají hodnotu TTL, systém nevyřadí žádné klíče. Pokud chcete, aby systém umožňoval vyřazení jakéhokoli klíče, pokud je pod tlakem na paměť, měli byste zvážit zásadu allkeys-lru
.
Vypršení platnosti klíčů
Nastavte hodnotu vypršení platnosti vašich klíčů. Vypršení platnosti proaktivně odebere klíče místo čekání na zatížení paměti. Když dojde k vyřazení kvůli zatížení paměti, může to způsobit větší zatížení serveru. Další informace najdete v dokumentaci k příkazům EXPIRE a EXPIREAT.
Minimalizace fragmentace paměti
Velké hodnoty můžou způsobit fragmentace paměti při vyřazení a můžou vést k vysokému využití paměti a zatížení serveru.
Monitorovat využití paměti
Přidejte monitorování využití paměti, abyste se ujistili, že nedostatek paměti nemáte a máte možnost škálovat mezipaměť před zobrazením problémů.
Konfigurace nastavení maxmemory-reserved
Nakonfigurujte nastavení maxmemory-reserved, aby se zlepšila rychlost odezvy systému:
Dostatečné nastavení rezervace je zvlášť důležité pro úlohy náročné na zápis nebo pokud ukládáte hodnoty 100 kB nebo více v mezipaměti. Ve výchozím nastavení při vytváření mezipaměti je přibližně 10 % dostupné paměti vyhrazeno pro
maxmemory-reserved
. Další 10 % je vyhrazeno promaxfragmentationmemory-reserved
. Pokud máte náročné na zápis, můžete zvýšit rezervovanou částku.Nastavení
maxmemory-reserved
konfiguruje velikost paměti v MB na instanci v clusteru, která je vyhrazená pro operace mimo mezipaměť, jako je replikace při převzetí služeb při selhání. Nastavením této hodnoty můžete zajistit konzistentnější prostředí serveru Redis při změnách zatížení. Tato hodnota by měla být vyšší u úloh, které zapisují velké objemy dat. Paměť vyhrazená pro tyto operace není dostupná k ukládání dat v mezipaměti. Povolený rozsah jemaxmemory-reserved
10 % - 60 % zmaxmemory
. Pokud se pokusíte nastavit tyto hodnoty nižší než 10 % nebo vyšší než 60 %, vyhodnotí se znovu a nastaví se na 10 % minimum a 60 %. Hodnoty se vykreslují v megabajtech.Nastavení
maxfragmentationmemory-reserved
nakonfiguruje velikost paměti v MB na instanci v clusteru, která je vyhrazená pro fragmentaci paměti. Při nastavování této hodnoty je prostředí serveru Redis konzistentnější, pokud je mezipaměť plná nebo blízko plné a poměr fragmentace je vysoký. Paměť vyhrazená pro tyto operace není dostupná k ukládání dat v mezipaměti. Povolený rozsah jemaxfragmentationmemory-reserved
10 % - 60 % zmaxmemory
. Pokud se pokusíte nastavit tyto hodnoty nižší než 10 % nebo vyšší než 60 %, vyhodnotí se znovu a nastaví se na 10 % minimum a 60 %. Hodnoty se vykreslují v megabajtech.Při výběru nové hodnoty rezervace paměti (
maxmemory-reserved
nebomaxfragmentationmemory-reserved
) je potřeba zvážit, jak tato změna může ovlivnit mezipaměť s velkým množstvím dat, která už běží. Pokud máte například mezipaměť 53 GB s 49 GB dat a pak změníte hodnotu rezervace na 8 GB, maximální dostupná paměť systému se sníží na 45 GB. Pokud je aktuálníused_memory
hodnota nebo vašeused_memory_rss
hodnoty vyšší než nový limit 45 GB, systém musí data vyřadit, dokudused_memory
nebudou nižší nežused_memory_rss
45 GB. Vyřazení může zvýšit zatížení serveru a fragmentaci paměti. Další informace o metrikách mezipaměti, napříkladused_memory
aused_memory_rss
, naleznete v tématu Vytvoření vlastních metrik.
Poznámka:
Při vertikálním navýšení nebo snížení kapacity mezipaměti se maxfragmentationmemory-reserved
nastavení maxmemory-reserved
automaticky škáluje v poměru k velikosti mezipaměti. Pokud maxmemory-reserved
je například nastavená na 3 GB v 6GB mezipaměti a škálujete na 12 GB mezipaměti, nastavení se během škálování automaticky aktualizuje na 6 GB. Když vertikálně snížit kapacitu, stane se obráceně.
Při programovém škálování mezipaměti nahoru nebo dolů pomocí PowerShellu, rozhraní příkazového řádku nebo rozhraní REST API se v rámci žádosti o aktualizaci všechny maxmemory-reserved
nebo maxfragmentationmemory-reserved
se ignorují. Je dodržena pouze vaše změna škálování. Po dokončení operace škálování můžete tato nastavení paměti aktualizovat.