Správa paměti

Zásady vyřazení

Zvolte zásadu vyřazení , která bude fungovat pro vaši aplikaci. Výchozí zásada pro Azure Cache for Redis je volatile-lru, což znamená, že k vyřazení jsou způsobilé pouze klíče, které mají hodnotu TTL nastavenou příkazem, jako je EXPIRE. Pokud žádné klíče nemají hodnotu TTL, systém žádné klíče nevyřadí. Pokud chcete, aby systém umožnil vyřazení libovolného klíče v případě, že je zatěžován paměť, můžete zvážit zásady allkeys-lru .

Vypršení platnosti klíčů

Nastavte hodnotu vypršení platnosti klíčů. Vypršení platnosti proaktivně odebírá klíče, místo aby čekalo, až dojde k přetížení paměti. Pokud k vyřazení dojde 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 při vyřazení zanechat fragmentovanou paměť, což může vést k vysokému využití paměti a zatížení serveru.

Monitorování využití paměti

Přidejte monitorování využití paměti, abyste měli jistotu, že nemáte nedostatek paměti a máte možnost škálovat mezipaměť, než dojde k problémům.

Konfigurace nastavení maxmemory-reserved

Nakonfigurujte nastavení maxmemory-reserved , abyste zlepšili rychlost odezvy systému:

  • Dostatečné nastavení rezervace je zvlášť důležité pro úlohy náročné na zápis nebo pokud do mezipaměti ukládáte hodnoty o objemu 100 kB nebo více. Ve výchozím nastavení je při vytváření mezipaměti přibližně 10 % dostupné paměti rezervováno pro maxmemory-reserved. Dalších 10 % je vyhrazeno pro maxfragmentationmemory-reserved. Rezervované množství můžete zvýšit, pokud máte zatížení náročné na zápis.

  • Toto maxmemory-reserved nastavení konfiguruje velikost paměti (v MB na instanci v clusteru), která je vyhrazená pro operace mimo mezipaměť, jako je replikace během 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 pro maxmemory-reserved je 10 – 60 % hodnoty maxmemory. Pokud se pokusíte nastavit tyto hodnoty nižší než 10 % nebo vyšší než 60 %, budou znovu vyhodnoceny a nastaveny na minimální hodnotu 10 % a maximální hodnotu 60 %. Hodnoty se vykreslují v megabajtech.

  • Nastavení maxfragmentationmemory-reserved konfiguruje velikost paměti v MB na instanci v clusteru, která je vyhrazená pro fragmentaci paměti. Když nastavíte tuto hodnotu, prostředí serveru Redis bude konzistentnější, když je mezipaměť zaplněná nebo se blíží plné a poměr fragmentace je vysoký. Paměť vyhrazená pro tyto operace není dostupná k ukládání dat v mezipaměti. Povolený rozsah pro maxfragmentationmemory-reserved je 10 – 60 % hodnoty maxmemory. Pokud se pokusíte nastavit tyto hodnoty nižší než 10 % nebo vyšší než 60 %, budou znovu vyhodnoceny a nastaveny na minimální hodnotu 10 % a maximální hodnotu 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 by tato změna mohla ovlivnit mezipaměť s velkými objemy dat, která už je spuštěná. Pokud máte například 53GB mezipaměť se 49 GB dat a pak změníte hodnotu rezervace na 8 GB, maximální dostupná paměť pro systém klesne na 45 GB. Pokud jsou vaše aktuální used_memory nebo vaše used_memory_rss hodnoty vyšší než nový limit 45 GB, musí systém vyřadit data, dokud nebudou menší used_memoryused_memory_rss než 45 GB. Vyřazení může zvýšit zatížení serveru a fragmentaci paměti. Další informace o metrikách mezipaměti, jako used_memory jsou a used_memory_rss, najdete v tématu Vytvoření vlastních metrik.

Poznámka

Při vertikálním navýšení nebo snížení kapacity mezipaměti se automaticky škáluje nastavení i maxmemory-reservedmaxfragmentationmemory-reserved v poměru k velikosti mezipaměti. Pokud maxmemory-reserved je například nastavená velikost 3 GB v 6GB mezipaměti a škálujete ji na 12 GB mezipaměti, nastavení se během škálování automaticky aktualizuje na 6 GB. Při vertikálním snížení kapacity dojde k opačnému opaku. Při programovém vertikálním navýšení nebo snížení kapacity mezipaměti pomocí PowerShellu, rozhraní příkazového řádku nebo rozhraní REST API se v rámci žádosti o aktualizaci ignorují všechny maxmemory-reservedmaxfragmentationmemory-reserved nebo . Respektuje se jenom vaše změna měřítka. Po dokončení operace škálování můžete tato nastavení paměti aktualizovat.

Další kroky