Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wskazówka
Możesz również zadać aplikacji Microsoft Copilot na platformie Azure następujące pytania:
- Jak działa lokalna pamięć podręczna w usłudze Azure App Service?
- Jakie są zalety korzystania z lokalnej pamięci podręcznej w usłudze Azure App Service?
- Jakie są ograniczenia dotyczące używania lokalnej pamięci podręcznej w usłudze Azure App Service?
Aby znaleźć narzędzie Copilot na platformie Azure, na pasku narzędzi witryny Azure Portal wybierz pozycję Copilot.
Zawartość usługi Azure App Service jest przechowywana w usłudze Azure Storage i jest widoczna jako trwały udział zawartości. Ten projekt działa z różnymi aplikacjami i ma następujące atrybuty:
- Zawartość jest udostępniana w wielu wirtualnych maszynach (VM) aplikacji.
- Zawartość jest trwała, a uruchomione aplikacje mogą ją modyfikować.
- Pliki dziennika i pliki danych diagnostycznych są dostępne w tym samym folderze zawartości udostępnionej.
- Publikowanie nowej zawartości bezpośrednio aktualizuje folder zawartości. Tę samą zawartość można natychmiast wyświetlić za pośrednictwem witryny internetowej Menedżera kontroli źródła (SCM, znanej również jako Kudu) i uruchomionej aplikacji. Jednak niektóre technologie (takie jak ASP.NET) mogą zainicjować ponowne uruchomienie aplikacji na niektórych zmianach w pliku w celu załadowania najnowszej zawartości.
Mimo że wiele aplikacji używa jednej lub więcej z tych funkcji, niektóre aplikacje potrzebują wydajnego magazynu zawartości tylko do odczytu, z którego mogą działać przy wysokiej dostępności. Takie aplikacje mogą korzystać z lokalnej pamięci podręcznej na wystąpieniu maszyny wirtualnej.
Funkcja lokalnej pamięci podręcznej w usłudze Azure App Service udostępnia widok roli webowej Twojej zawartości. Ta zawartość to pamięć podręczna typu write-but-discard dla zawartości magazynu, która jest tworzona asynchronicznie podczas uruchamiania witryny. Gdy pamięć podręczna będzie gotowa, witryna zostanie przełączona, aby działać na buforowanej zawartości.
Aplikacje działające z lokalną pamięcią podręczną korzystają z następujących sposobów:
- Są odporne na opóźnienia związane z uzyskiwaniem dostępu do zawartości w usłudze Azure Storage.
- Problemy z nawiązywaniem połączenia z magazynem nie wpływają na nie, ponieważ kopia tylko do odczytu jest buforowana lokalnie.
- Doświadczają mniejszej liczby ponownych uruchomień aplikacji z powodu zmian w udziale pamięci.
Uwaga
Funkcja lokalnej pamięci podręcznej nie jest obsługiwana w aplikacjach funkcji ani konteneryzowanych aplikacjach usługi App Service, takich jak w kontenerach systemu Windows lub w wbudowanych lub niestandardowych kontenerach systemu Linux. Wersja funkcji, która jest dostępna dla tych typów aplikacji, to pamięć podręczna aplikacji.
Funkcja lokalnej pamięci podręcznej nie jest również obsługiwana w warstwach cenowych F1 i D1 usługi App Service.
Jak lokalna pamięć podręczna zmienia zachowanie usługi App Service
Skonfigurowanie lokalnej pamięci podręcznej powoduje następujące zmiany:
D:\home
teraz wskazuje na lokalną pamięć podręczną, tworzoną w wystąpieniu maszyny wirtualnej, gdy aplikacja się uruchamia.D:\local
kontynuuje wskazywanie tymczasowego magazynu specyficznego dla maszyny wirtualnej.Lokalna pamięć podręczna zawiera jednorazową kopię folderów
/site
i/siteextensions
z udostępnionego magazynu zawartości. Te foldery znajdują się odpowiednio w folderachD:\home\site
iD:\home\siteextensions
. Te pliki są kopiowane do lokalnej pamięci podręcznej podczas uruchamiania aplikacji.Rozmiar tych dwóch folderów jest domyślnie ograniczony do 1 GB, ale można go zwiększyć do 2 GB. Wraz ze wzrostem rozmiaru pamięci podręcznej ładowanie pamięci podręcznej trwa dłużej. Jeśli zwiększysz limit lokalnej pamięci podręcznej do 2 GB, a skopiowane pliki przekroczą ten maksymalny rozmiar, usługa App Service bez zauważenia pomija lokalną pamięć podręczną i odczytuje dane z zdalnego udziału plików.
Ważne
Gdy skopiowane pliki przekraczają zdefiniowany limit rozmiaru dla lokalnej pamięci podręcznej lub gdy nie zdefiniowano żadnego limitu, operacje wdrażania i zamiany mogą zakończyć się niepowodzeniem z powodu błędu. Aby uzyskać szczegółowe informacje, zobacz często zadawane pytania dotyczące limitów rozmiaru w dalszej części tego artykułu.
Lokalna pamięć podręczna jest możliwa do odczytu i zapisu. Jednak wszelkie modyfikacje są odrzucane, gdy aplikacja przechodzi między maszynami wirtualnymi lub uruchamia się ponownie. Nie używaj lokalnej pamięci podręcznej do przechowywania danych o znaczeniu krytycznym.
D:\home\LogFiles
iD:\home\Data
zawierają pliki dziennika i dane aplikacji. Te katalogi są przechowywane lokalnie na instancji maszyny wirtualnej i są regularnie kopiowane do udostępnionego magazynu zawartości. Mimo że aplikacje mogą utrwalać pliki dziennika i dane, zapisując je w tych folderach, proces kopiowania jest oparty na zasadzie najlepszych możliwych starań. Pliki dziennika i dane mogą zostać utracone, jeśli instancja maszyny wirtualnej nagle przestanie odpowiadać.Kopiowanie z najlepszym nakładem pracy wpływa na przesyłanie strumieniowe dzienników. W dziennikach przesyłanych strumieniowo może wystąpić maksymalnie jednominutowe opóźnienie.
W udostępnionym magazynie zawartości struktura folderów dla
LogFiles
iData
zmienia się w aplikacjach korzystających z lokalnej pamięci podręcznej. Istnieją teraz podfoldery z nazwami, które składają się z unikatowego identyfikatora i sygnatury czasowej. Każdy podfolder odpowiada wystąpieniu maszyny wirtualnej, w którym aplikacja była lub jest uruchomiona.Inne foldery w
D:\home
pozostają w lokalnej pamięci podręcznej i nie są kopiowane do udostępnionego magazynu zawartości.Wdrożenia aplikacji za pośrednictwem dowolnej obsługiwanej metody są publikowane bezpośrednio w trwałym, udostępnionym repozytorium treści. Aby odświeżyć foldery
D:\home\site
iD:\home\siteextensions
w lokalnej pamięci podręcznej, należy ponownie uruchomić aplikację. Aby uzyskać bezproblemowy cykl życia, zobacz sekcję dotyczącą najlepszych rozwiązań w dalszej części tego artykułu.Domyślny widok zawartości witryny SCM nadal odzwierciedla udostępniony magazyn zawartości.
Uwaga
Jeśli używasz Java (Java SE, Tomcat lub JBoss EAP), to domyślnie artefakty Java (.jar, .war i .ear) są kopiowane lokalnie do pracownika. Jeśli aplikacja Java zależy od dostępu tylko do odczytu do dodatkowych plików, ustaw wartość JAVA_COPY_ALL
na true
tak, aby te pliki również były kopiowane. Jeśli włączono lokalną pamięć podręczną, ma ona pierwszeństwo przed zachowaniem specyficznym dla języka Java.
Metody włączania lokalnej pamięci podręcznej
Konfigurujesz lokalną pamięć podręczną, używając kombinacji zarezerwowanych ustawień aplikacji. Te ustawienia aplikacji można ustawić przy użyciu jednej z następujących metod.
Konfigurowanie lokalnej pamięci podręcznej przy użyciu witryny Azure Portal
Włącz lokalną pamięć podręczną dla aplikacji internetowej, dodając to ustawienie aplikacji: WEBSITE_LOCAL_CACHE_OPTION
= Always
.
Konfigurowanie lokalnej pamięci podręcznej przy użyciu usługi Azure Resource Manager
{
"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"
}
}
Zmiana ustawienia rozmiaru w lokalnej pamięci podręcznej
Domyślnie rozmiar lokalnej pamięci podręcznej to 1 GB. Ten rozmiar obejmuje foldery /site
oraz /siteextensions
skopiowane z magazynu zawartości. Zawiera również wszystkie lokalnie wygenerowane dzienniki i foldery danych.
Aby zwiększyć ten limit, użyj ustawienia WEBSITE_LOCAL_CACHE_SIZEINMB
aplikacji . Rozmiar aplikacji można zwiększyć do 2 GB (2000 MB). Należy pamiętać, że większy rozmiar pamięci podręcznej zwiększa czas ładowania pamięci podręcznej.
Najlepsze rozwiązania dotyczące korzystania z lokalnej pamięci podręcznej
Zalecamy używanie lokalnej pamięci podręcznej w połączeniu z funkcją środowisk przejściowych .
Poniższy proces reprezentuje najlepsze rozwiązania dotyczące korzystania z lokalnej pamięci podręcznej:
Dodaj ustawienia aplikacji sticky o wartości
WEBSITE_LOCAL_CACHE_OPTION
do slotuAlways
. Jeśli używaszWEBSITE_LOCAL_CACHE_SIZEINMB
, oznacz to ustawienie również jako ustawienie trwałe dla miejsca produkcyjnego.Utwórz miejsce przejściowe i opublikuj w nim. Zazwyczaj nie ustawiasz gniazda testowego na użycie lokalnej pamięci podręcznej, co pomaga w prowadzeniu bezproblemowego cyklu życia kompilacji/wdrażania/testowania, jednocześnie zapewniając korzyści z lokalnej pamięci podręcznej dla gniazda produkcyjnego.
Przetestuj witrynę w gnieździe testowym.
Gdy wszystko będzie gotowe, wykonaj operację zamiany między miejscami przejściowymi i produkcyjnymi.
Ustawienia sticky są powiązane z gniazdem. Gdy slot przejściowy zostanie zamieniony do środowiska produkcyjnego, dziedziczy ustawienia aplikacji z lokalnej pamięci podręcznej. Nowo zamienione gniazdo produkcyjne zaczyna działać w lokalnej pamięci podręcznej po kilku minutach i nagrzewa się podczas fazy rozgrzewania gniazda. Po zakończeniu zamiany gniazdo produkcyjne działa w oparciu o lokalną pamięć podręczną.
Często zadawane pytania
Co zrobić, jeśli przekroczono limit rozmiaru lokalnej pamięci podręcznej?
Jeśli skopiowane pliki przekraczają limit rozmiaru lokalnej pamięci podręcznej, aplikacja powraca do odczytu z udziału zdalnego. W poniższej tabeli przedstawiono szczegóły.
Rozmiar lokalnej pamięci podręcznej | Skopiowane pliki | Wynik |
---|---|---|
≤ 2 GB | ≤ rozmiar lokalnej pamięci podręcznej | Odczytuje z lokalnej pamięci podręcznej. |
≤ 2 GB | > rozmiar lokalnej pamięci podręcznej | Odczytuje dane z udziału zdalnego. Operacje wdrażania i zamiany mogą zakończyć się niepowodzeniem z powodu błędu. |
Jak sprawdzić, czy moja aplikacja może korzystać z lokalnej pamięci podręcznej?
Lokalna pamięć podręczna jest dobrym rozwiązaniem, jeśli mają zastosowanie wszystkie te warunki:
- Aplikacja wymaga niezawodnego magazynu zawartości o wysokiej wydajności.
- Aplikacja nie używa magazynu zawartości do zapisywania krytycznych danych w czasie wykonywania.
- Całkowity rozmiar jest mniejszy niż 2 GB.
Aby sprawdzić całkowity rozmiar folderów /site
i /siteextensions
, możesz użyć rozszerzenia witryny Użycie dysku usługi Azure Web Apps.
Jak sprawdzić, czy moja witryna została przełączona na użycie lokalnej pamięci podręcznej?
Gdy używasz lokalnej pamięci podręcznej ze środowiskami przejściowymi, operacja zamiany nie zostanie zakończona, dopóki lokalna pamięć podręczna nie zostanie rozgrzana. Aby zweryfikować, czy witryna działa w stosunku do lokalnej pamięci podręcznej, sprawdź zmienną środowiskową procesu roboczego WEBSITE_LOCALCACHE_READY
. Aby sprawdzić tę zmienną w wielu wystąpieniach, skorzystaj z instrukcji Kudu dotyczących zmiennej środowiskowej procesu roboczego.
Dlaczego moja aplikacja nie odzwierciedla nowo opublikowanych zmian?
Jeśli aplikacja używa lokalnej pamięci podręcznej, musisz ponownie uruchomić witrynę, aby załadować najnowsze zmiany. Jeśli wolisz nie publikować zmian bezpośrednio w witrynie produkcyjnej, rozważ użycie slotów wdrożeniowych zgodnie z opisem we wcześniejszej sekcji dotyczącej najlepszych rozwiązań.
Uwaga
Opcja uruchomienia z poziomu pakietu nie jest zgodna z funkcją lokalnego buforu.
Gdzie znajdują się moje dzienniki?
W przypadku korzystania z lokalnej pamięci podręcznej struktura dzienników i folderów danych nieco się zmienia. Podfoldery są teraz zagnieżdżone w folderze o nazwie z unikatowym identyfikatorem maszyny wirtualnej i sygnaturą czasową. Każdy z tych folderów odpowiada instancji maszyny wirtualnej, w której aplikacja jest lub była uruchomiona.
Dlaczego moja aplikacja nadal uruchamia się ponownie z włączoną lokalną pamięcią podręczną?
Lokalna pamięć podręczna pomaga zapobiec ponownemu uruchamianiu aplikacji związanym z problemami z magazynowaniem. Jednak aplikacja może być nadal uruchamiana ponownie podczas planowanych uaktualnień infrastruktury na maszynie wirtualnej. Ogólnie rzecz biorąc, powinniśmy zaobserwować mniej ponownych uruchomień przy włączonej lokalnej pamięci podręcznej.
Czy lokalna pamięć podręczna wyklucza skopiowanie jakichkolwiek katalogów na szybszy dysk lokalny?
Podczas procesu kopiowania wszystkie foldery o nazwie repository
są wykluczone. To zachowanie jest przydatne w scenariuszach, w których zawartość witryny zawiera repozytorium kontroli źródła, które nie jest potrzebne do codziennych operacji.
Jak opróżnić dzienniki lokalnej pamięci podręcznej po operacji zarządzania stroną?
Aby opróżnić dzienniki lokalnej pamięci podręcznej, zatrzymaj i uruchom ponownie aplikację. Ta akcja powoduje wyczyszczenie poprzedniej pamięci podręcznej.
Dlaczego usługa App Service pokazuje wcześniej wdrożone pliki po ponownym uruchomieniu po włączeniu lokalnej pamięci podręcznej?
Jeśli wcześniej wdrożone pliki pojawią się ponownie po ponownym uruchomieniu, sprawdź obecność ustawienia WEBSITE_DISABLE_SCM_SEPARATION=true
aplikacji . Dodanie tego ustawienia powoduje, że wdrożenia za pośrednictwem usługi Kudu będą zapisywane na lokalnej maszynie wirtualnej zamiast magazynu trwałego. Aby uniknąć tej sytuacji, postępuj zgodnie z najlepszymi rozwiązaniami wymienionymi wcześniej i wykonaj wdrożenia w miejscu przejściowym, które nie ma włączonej lokalnej pamięci podręcznej.