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 pro maxfragmentationmemory-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 je maxmemory-reserved 10 % - 60 % z maxmemory. 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 je maxfragmentationmemory-reserved 10 % - 60 % z maxmemory. 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 nebo maxfragmentationmemory-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še used_memory_rss hodnoty vyšší než nový limit 45 GB, systém musí data vyřadit, dokud used_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říklad used_memory a used_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.

Další kroky