Sdílet prostřednictvím


Správa paměti

Důležité

Služba Azure Cache for Redis oznámila časovou osu vyřazení všech skladových položek. Doporučujeme přesunout stávající instance Azure Cache for Redis do Azure Managed Redis , jakmile budete moct.

Další podrobnosti o ukončení podpory:

Tento článek popisuje osvědčené postupy pro správu paměti ve službě Azure Cache for Redis.

Zvolte správnou politiku vyřazování

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 (Time to Live) pomocí příkazu jako je EXPIRE. 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ěť, zvažte zásadu allkeys-lru .

Nastavení data vypršení platnosti klíčů

Vyřazení z důvodu zatížení paměti může způsobit větší zatížení serveru. Nastavte u klíčů hodnotu vypršení platnosti, abyste klíče aktivně odebrali, a nečekejte na to, dokud nedojde k zatížení paměti. Další informace najdete v dokumentaci k příkazům Redis EXPIRE a EXPIREAT .

Minimalizace fragmentace paměti

Velké hodnoty klíčů 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

Monitorujte využití paměti , abyste měli jistotu, že nevyčercháte paměť. Vytvořte upozornění , která vám umožní škálovat mezipaměť před výskytem problémů.

Konfigurujte nastavení maxmemory-reserved

Nakonfigurujte nastavení maxmemory-reserved tak, aby maximalizovala rychlost odezvy systému. Dostatečná nastavení rezervace jsou obzvláště 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.

  • Nastavení maxmemory-reserved konfiguruje velikost paměti v MB na instanci v clusteru, která je vyhrazená na operace nesouvisející s cache, jako je replikace 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í.

  • Nastavení maxfragmentationmemory-reserved nakonfiguruje velikost paměti v MB na instanci v clusteru, která je vyhrazená pro přizpůsobení fragmentace 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ý.

Pokud je paměť vyhrazená pro tyto operace, není k dispozici pro ukládání dat uložených v mezipaměti. Při vytváření mezipaměti je ve výchozím nastavení přibližně 10% dostupné paměti rezervováno pro maxmemory-reserved, a dalších 10% je vyhrazeno pro maxfragmentationmemory-reserved. Pokud máte velké nároky na zápis, můžete zvýšit rezervované částky.

Povolené rozsahy pro maxmemory-reserved a pro maxfragmentationmemory-reserved jsou 10%-60% of maxmemory. Pokud se pokusíte nastavit tyto hodnoty nižší než 10 % nebo vyšší než 60 %, budou přehodnocené a nastaveny na 10% minimum a 60 % maximum.

Při zvětšení nebo zmenšení kapacity mezipaměti se nastavení maxmemory-reserved a maxfragmentationmemory-reserved automaticky škálují 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. Pokud zmenšíte měřítko, stane se opak.

Zvažte, jak může změna maxmemory-reserved hodnoty rezervace paměti maxfragmentationmemory-reserved ovlivnit mezipaměť s velkým množstvím dat, která už běží. Pokud máte například 53 GB mezipaměti s rezervovanými hodnotami nastavenými na 10% minimum, maximální dostupná paměť pro systém je přibližně 42 GB. Pokud je aktuální used_memory nebo used_memory_rss hodnota vyšší než 42 GB, musí systém vyřadit data, dokud used_memoryused_memory_rss nebudou nižší než 42 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 programovém škálování mezipaměti nahoru nebo dolů pomocí Azure PowerShellu, Azure CLI nebo rozhraní REST API se všechny zahrnuté maxmemory-reserved nebo maxfragmentationmemory-reserved nastavení ignorují jako součást žádosti o aktualizaci. Je dodržena pouze vaše změna škálování. Po dokončení operace škálování můžete aktualizovat nastavení paměti.