Sdílet prostřednictvím


Přehled místní mezipaměti služby Aplikace Azure

Poznámka:

Místní mezipaměť není podporována v aplikacích funkcí ani kontejnerizovaných aplikacích App Service, jako jsou kontejnery Windows Containers nebo v App Service v Linuxu. Verze místní mezipaměti, která je pro tyto typy aplikací dostupná, je App Cache.

Aplikace Azure Obsah služby je uložený ve službě Azure Storage a je povrchován trvalým způsobem jako sdílená složka obsahu. Tento návrh je určený pro práci s různými aplikacemi a má následující atributy:

  • Obsah se sdílí napříč několika instancemi virtuálního počítače aplikace.
  • Obsah je trvalý a lze ho upravit spuštěním aplikací.
  • Soubory protokolů a soubory diagnostických dat jsou k dispozici ve stejné složce sdíleného obsahu.
  • Publikování nového obsahu přímo aktualizuje složku obsahu. Stejný obsah můžete okamžitě zobrazit prostřednictvím webu SCM a spuštěné aplikace (obvykle některé technologie, jako je ASP.NET inicializovat restartování aplikace na některých změnách souboru, abyste získali nejnovější obsah).

I když mnoho aplikací používá jednu nebo všechny tyto funkce, některé aplikace potřebují jenom vysoce výkonné úložiště obsahu jen pro čtení, ze kterého můžou běžet s vysokou dostupností. Tyto aplikace můžou těžit z instance virtuálního počítače konkrétní místní mezipaměti.

Funkce místní mezipaměti služby Aplikace Azure poskytuje zobrazení webové role vašeho obsahu. Tento obsah je mezipaměť úložiště, která se vytváří asynchronně při spuštění na webu, ale zahodí. Až bude mezipaměť připravená, web se přepne tak, aby běžel na obsahu v mezipaměti. Aplikace, které běží v místní mezipaměti, mají následující výhody:

  • Jsou imunní vůči latencím, ke kterým dochází, když přistupují k obsahu ve službě Azure Storage.
  • Nejsou ovlivněny problémy s připojením k úložišti, protože kopie jen pro čtení je uložena v mezipaměti pracovního procesu.
  • Kvůli změnám sdílené složky úložiště mají méně restartování aplikací.

Poznámka:

Pokud používáte Javu (Java SE, Tomcat nebo JBoss EAP), pak se ve výchozím nastavení do pracovního procesu zkopírují artefakty Java--.jar, .war a .ear. Pokud vaše aplikace v Javě závisí také na přístupu jen pro čtení k jiným souborům, nastavte JAVA_COPY_ALL je také tak, aby true se tyto soubory zkopírovaly. Pokud je povolená místní mezipaměť, má přednost před tímto vylepšením specifickým pro Javu.

Jak místní mezipaměť mění chování služby App Service

  • D:\home odkazuje na místní mezipaměť, která se vytvoří v instanci virtuálního počítače při spuštění aplikace. D:\local nadále odkazuje na dočasné úložiště specifické pro virtuální počítač.
  • Místní mezipaměť obsahuje jednorázovou kopii složek /site a /siteextensions sdíleného úložiště obsahu na adrese D:\home\site a D:\home\siteextensions. Soubory se při spuštění aplikace zkopírují do místní mezipaměti. Velikost dvou složek pro každou aplikaci je ve výchozím nastavení omezená na 1 GB, ale dá se zvětšit na 2 GB. Mějte na paměti, že při nárůstu velikosti mezipaměti bude načítání mezipaměti trvat déle. Pokud jste zvýšili limit místní mezipaměti na 2 GB a zkopírované soubory překračují maximální velikost 2 GB, služba App Service bezobslužně ignoruje místní mezipaměť a čtení ze vzdálené sdílené složky.

Důležité

Když zkopírované soubory překročí definovaný limit velikosti místní mezipaměti nebo pokud není definován žádný limit, nasazení a operace prohození můžou selhat s chybou. Další informace najdete v nejčastějších dotazech .

  • Místní mezipaměť je pro čtení i zápis. Všechny změny se ale zahodí, když aplikace přesune virtuální počítače nebo se restartuje. Nepoužívejte místní mezipaměť pro aplikace, které ukládají důležitá data v úložišti obsahu.
  • D:\home\LogFiles a D:\home\Data obsahují soubory protokolů a data aplikací. Obě podsložky se ukládají místně v instanci virtuálního počítače a pravidelně se kopírují do úložiště sdíleného obsahu. Aplikace můžou uchovávat soubory protokolů a data jejich zápisem do těchto složek. Kopírování do sdíleného úložiště obsahu je však nejlepší, takže je možné, aby se soubory protokolů a data ztratily kvůli náhlému chybovému ukončení instance virtuálního počítače.
  • Streamování protokolů má vliv na kopírování s nejlepším úsilím. V streamovaných protokolech můžete pozorovat až jednominutové zpoždění.
  • Ve sdíleném úložišti obsahu existuje změna struktury složek složek logfiles a datových složek pro aplikace, které používají místní mezipaměť. Teď jsou v nich podsložky, které se řídí vzorem pojmenování "jedinečný identifikátor" + časové razítko. Každá z podsložek odpovídá instanci virtuálního počítače, ve které je aplikace spuštěná nebo spuštěná.
  • Ostatní složky v adresáři D:\home zůstanou v místní mezipaměti a nekopírují se do úložiště sdíleného obsahu.
  • Nasazení aplikace prostřednictvím jakékoli podporované metody se publikuje přímo do úložiště odolného sdíleného obsahu. Pokud chcete aktualizovat složky D:\home\site a D:\home\siteextensions v místní mezipaměti, je potřeba aplikaci restartovat. Pokud chcete, aby byl životní cyklus bezproblémový, přečtěte si informace dále v tomto článku.
  • Výchozím zobrazením obsahu webu SCM je i nadále úložiště sdíleného obsahu.

Povolení místní mezipaměti ve službě App Service

Poznámka:

Místní mezipaměť není podporována na úrovni F1 nebo D1 .

Místní mezipaměť nakonfigurujete pomocí kombinace nastavení rezervovaných aplikací. Tato nastavení aplikace můžete nakonfigurovat pomocí následujících metod:

Konfigurace místní mezipaměti pomocí webu Azure Portal

Místní mezipaměť povolíte pro každou webovou aplikaci pomocí tohoto nastavení aplikace: WEBSITE_LOCAL_CACHE_OPTION = Always

Azure portal app settings: Local Cache

Konfigurace místní mezipaměti pomocí Azure Resource Manageru

...

{
    "apiVersion": "2015-08-01",
    "type": "config",
    "name": "appsettings",
    "dependsOn": [
        "[resourceId('Microsoft.Web/sites/', variables('siteName'))]"
    ],

    "properties": {
        "WEBSITE_LOCAL_CACHE_OPTION": "Always",
        "WEBSITE_LOCAL_CACHE_SIZEINMB": "1000"
    }
}

...

Změna nastavení velikosti v místní mezipaměti

Ve výchozím nastavení je velikost místní mezipaměti 1 GB. To zahrnuje složky /site a /siteextensions, které se zkopírují z úložiště obsahu, a také všechny místně vytvořené protokoly a datové složky. Pokud chcete tento limit zvýšit, použijte nastavení WEBSITE_LOCAL_CACHE_SIZEINMBaplikace . Velikost můžete na aplikaci zvětšit až o 2 GB (2000 MB). Mějte na paměti, že načtení místní mezipaměti při nárůstu velikosti bude trvat déle.

Osvědčené postupy pro používání místní mezipaměti služby App Service

Doporučujeme používat místní mezipaměť ve spojení s funkcí Přípravná prostředí .

  • Přidejte nastavení WEBSITE_LOCAL_CACHE_OPTION rychlé aplikace s hodnotou Always do produkčního slotu. Pokud používáte WEBSITE_LOCAL_CACHE_SIZEINMB, přidejte ho také jako rychlé nastavení do produkčního slotu.
  • Vytvořte přípravný slot a publikujte ho do přípravného slotu. Pracovní slot obvykle nenastavíte tak, aby používal místní mezipaměť, abyste umožnili bezproblémový životní cyklus testů nasazení sestavení pro přípravu, pokud získáte výhody místní mezipaměti pro produkční slot.
  • Otestujte svůj web proti přípravnému slotu.
  • Až budete připraveni, vytvořte operaci prohození mezi přípravovými a produkčními sloty.
  • Nastavení Sticky zahrnuje název a přichytávejte se ke slotu. Takže když se přípravný slot prohodí do produkčního prostředí, zdědí nastavení aplikace místní mezipaměti. Nově prohozený produkční slot se po několika minutách spustí s místní mezipamětí a po prohození se zahřeje jako součást zahřátí slotu. Takže po dokončení prohození slotů je v místní mezipaměti spuštěný produkční slot.

Nejčastější dotazy

Co když dojde k překročení limitu velikosti místní mezipaměti?

Když zkopírované soubory překročí limit velikosti místní mezipaměti, aplikace bude číst ze vzdálené sdílené složky. Operace nasazení a prohození ale můžou selhat s chybou. V následující tabulce najdete omezení velikosti a výsledky.

 Velikost místní mezipaměti Zkopírované soubory Výsledek
≤ 2 GB ≤ velikost místní mezipaměti Čte z místní mezipaměti.
≤ 2 GB > Velikost místní mezipaměti Čte ze vzdálené sdílené složky.
Poznámka: Operace nasazení a prohození můžou selhat s chybou.

Jak zjistím, jestli se místní mezipaměť vztahuje na mou aplikaci?

Pokud vaše aplikace potřebuje vysoce výkonné spolehlivé úložiště obsahu, nepoužívá úložiště obsahu k zápisu důležitých dat za běhu a je menší než 2 GB, odpověď je "ano". Pokud chcete získat celkovou velikost složek /site a /siteextensions, můžete použít rozšíření webu Využití disku Azure Web Apps.

Jak zjistím, jestli se můj web přepnul na používání místní mezipaměti?

Pokud používáte funkci Místní mezipaměť s přípravnými prostředími, operace prohození se nedokončí, dokud se místní mezipaměť nezahřeje. Pokud chcete zkontrolovat, jestli je váš web spuštěný v místní mezipaměti, můžete zkontrolovat proměnnou WEBSITE_LOCALCACHE_READYprostředí pracovního procesu . Pokyny na stránce proměnné prostředí pracovního procesu použijte pro přístup k proměnné prostředí pracovního procesu ve více instancích.

Právě jsem publikoval nové změny, ale moje aplikace je zřejmě nemá. Proč?

Pokud vaše aplikace používá místní mezipaměť, musíte web restartovat, abyste získali nejnovější změny. Nechcete publikovat změny do produkčního webu? Podívejte se na možnosti slotu v předchozí části osvědčených postupů.

Poznámka:

Možnost spuštění z nasazení balíčku není kompatibilní s místní mezipamětí.

Kde jsou moje protokoly?

S místní mezipamětí vypadají vaše protokoly a datové složky trochu jinak. Struktura podsložek však zůstává stejná, s výjimkou toho, že podsložky jsou vnořené podsložkou s formátem "jedinečný identifikátor virtuálního počítače" + časové razítko.

Mám povolenou místní mezipaměť, ale moje aplikace se pořád restartuje. Proč? Myslel jsem, že místní mezipaměť pomohla s častými restartováními aplikací.

Místní mezipaměť pomáhá zabránit restartování aplikací souvisejících s úložištěm. Vaše aplikace ale může během plánovaných upgradů infrastruktury virtuálního počítače stále projít restartováním. Celková aplikace restartuje, se kterou se setkáte s povolenou místní mezipamětí, by měla být menší.

Vylučuje místní mezipaměť z kopírování do rychlejšího místního disku všechny adresáře?

V rámci kroku, který kopíruje obsah úložiště, je vyloučena jakákoli složka s názvem úložiště. To vám pomůže se scénáři, kdy obsah webu může obsahovat úložiště správy zdrojového kódu, které nemusí být potřeba v denním provozu aplikace.

Jak vyprázdnit protokoly místní mezipaměti po operaci správy lokality?

Pokud chcete vyprázdnit protokoly místní mezipaměti, zastavte a restartujte aplikaci. Tato akce vymaže starou mezipaměť.

Proč služba App Service po restartování začne zobrazovat dříve nasazené soubory, když je povolená místní mezipaměť?

V případě, že služba App Service začne zobrazovat dříve nasazené soubory při restartování, zkontrolujte přítomnost nastavení aplikace – WEBSITE_DISABLE_SCM_SEPARATION=true. Po přidání tohoto nastavení se všechna nasazení přes KUDU začnou zapisovat do místního virtuálního počítače místo trvalého úložiště. Osvědčené postupy uvedené výše v tomto článku by se měly využít, kde by se nasazení měla vždy provádět v přípravném slotu, který nemá povolenou místní mezipaměť.

Další materiály

Referenční informace k proměnným prostředí a nastavením aplikace