Notatka
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.
Uwaga
Niektóre z poniższych wytycznych mogą działać tylko w usłudze aplikacja dla systemu Windows Service lub Linux App Service. Na przykład usługa App Service systemu Linux działa domyślnie w trybie 64-bitowym.
Podsumowanie
Ten artykuł zawiera odpowiedzi na często zadawane pytania dotyczące problemów z wydajnością aplikacji dla funkcji aplikacji internetowych Azure App Service.
Gdzie mogę dowiedzieć się więcej o przydziałach i limitach w różnych planach usługi App Service?
Aby uzyskać informacje o przydziałach i limitach, zobacz limity usługi App Service.
Plan usługi App Service wyświetla użycie procesora CPU lub pamięci nawet wtedy, gdy wszystkie aplikacje internetowe zostaną zatrzymane
Usługa App Service wymaga ciągłych procesów systemowych, które obsługują kilka operacji i funkcji platformy, takich jak aktualizacje zabezpieczeń, dostępność konsoli SCM (Kudu), monitorowanie aplikacji, uwierzytelnianie i wiele innych funkcji aplikacji internetowych.
Procesy systemowe są uruchamiane w planach usługi App Service, nawet jeśli nie ma uruchomionych aplikacji internetowych lub jeśli plan usługi App Service nie zawiera żadnych aplikacji internetowych.
Procesy platformy zużywają minimalną ilość zasobów (takich jak procesor CPU, pamięć i miejsce na dysku) i należy uwzględnić te zasoby podczas planowania, monitorowania i automatycznego skalowania wyzwalacza planu usługi App Service.
Wydajność mojej aplikacji jest niska
Wiele czynników może przyczynić się do spowolnienia wydajności aplikacji. Aby uzyskać szczegółowe instrukcje rozwiązywania problemów, zobacz Rozwiązywanie problemów z niską wydajnością aplikacji internetowej.
Wskazówka
- Włącz ustawienie Zawsze włączone w obszarzeUstawienia ogólne>, aby zachować ciepło aplikacji i uniknąć zimnych startów. To ustawienie pomaga zmniejszyć opóźnienie po czasie bezczynności, zwłaszcza w planach podstawowych i wyższych.
- Skonfiguruj ścieżkę kontroli zdrowia, aby monitorować zdrowie aplikacji i automatycznie wymieniać nieodpowiadające instancje. Ta konfiguracja pomaga zachować dostępność i wydajność. Aby uzyskać więcej informacji, zobacz Monitorowanie wystąpień usługi App Service za pomocą Health Check.
Jak rozwiązywać problemy z wysokim użyciem CPU?
W niektórych scenariuszach wysokiego użycia procesora CPU aplikacja może naprawdę wymagać większej ilości zasobów obliczeniowych. W takim przypadku rozważ skalowanie do wyższej warstwy usługi, aby aplikacja pobierała wszystkie potrzebne zasoby. Innym razem wysokie użycie procesora CPU może być spowodowane złą pętlą lub praktyką kodowania. Zrozumienie, co powoduje zwiększone wykorzystanie procesora CPU, to proces dwuetapowy. Najpierw utwórz zrzut procesu, a następnie przeanalizuj zrzut procesu. Aby uzyskać więcej informacji, zobacz Przechwytywanie i analizowanie pliku zrzutu pod kątem wysokiego użycia procesora CPU w usłudze Web Apps.
Jak rozwiązywać problemy z wysokim użyciem pamięci?
W niektórych scenariuszach wysokiego zużycia pamięci aplikacja może naprawdę wymagać większej ilości zasobów obliczeniowych. W takim przypadku rozważ skalowanie do wyższej warstwy usługi, aby aplikacja pobierała wszystkie potrzebne zasoby. Innym razem usterka w kodzie może spowodować wyciek pamięci. Praktyka kodowania może również zwiększyć zużycie pamięci. Uzyskiwanie wglądu w to, co wyzwala wysokie zużycie pamięci, to dwuczęściowy proces. Najpierw utwórz zrzut procesu, a następnie przeanalizuj zrzut procesu. Narzędzie do diagnozowania awarii z galerii rozszerzeń witryn platformy Azure może wydajnie wykonać oba te kroki. Aby uzyskać więcej informacji, zobacz Przechwytywanie i analizowanie pliku zrzutu dotyczącego sporadycznie wysokiego użycia pamięci w usłudze Web Apps.
Jak mogę zautomatyzować aplikacje internetowe usługi App Service przy użyciu programu PowerShell?
Za pomocą poleceń cmdlet programu PowerShell można zarządzać aplikacjami internetowymi w usłudze App Service i utrzymywać je. Aby uzyskać więcej informacji o tym, jak używać poleceń cmdlet programu PowerShell opartych na usłudze Azure Resource Manager do automatyzowania typowych zadań, zobacz Automatyzowanie aplikacji internetowych hostowanych w usłudze Azure App Service przy użyciu programu PowerShell.
Uwaga
W przypadku bieżących skryptów automatyzacji użyj najnowszego modułu Az.Websites . Starszy AzureRM moduł jest przestarzały.
Chcę zebrać informacje, aby rozwiązać problemy z moją aplikacją internetową
Wyświetlanie dzienników zdarzeń aplikacji internetowej
Aby wyświetlić dzienniki zdarzeń aplikacji internetowej, wykonaj następujące kroki:
- Zaloguj się do witryny internetowej Kudu (
https://*yourwebsitename*.scm.azurewebsites.net). - W menu wybierz Konsola debugowania>CMD.
- Wybierz folder LogFiles.
- Aby wyświetlić dzienniki zdarzeń, wybierz ikonę ołówka obok eventlog.xml.
- Aby pobrać dzienniki, uruchom polecenie programu PowerShell
Save-AzureWebSiteLog -Name webappname.
Przechwyć zrzut pamięci aplikacji internetowej w trybie użytkownika
Aby przechwycić zrzut pamięci trybu użytkownika aplikacji internetowej, wykonaj następujące kroki:
- Zaloguj się do witryny internetowej Kudu (
https://*yourwebsitename*.scm.azurewebsites.net). - Wybierz menu Eksplorator procesów.
- Kliknij prawym przyciskiem proces w3wp.exe lub proces WebJoba.
- Wybierz Pobierz zrzut pamięci>Pełny zrzut pamięci.
Wyświetlanie informacji na poziomie procesu dla aplikacji internetowej
Dostępne są dwie opcje wyświetlania informacji na poziomie procesu dla aplikacji internetowej:
W portalu Azure:
- Otwórz Eksploratora procesów dla aplikacji internetowej.
- Aby wyświetlić szczegóły, wybierz proces w3wp.exe .
W konsoli Kudu:
- Zaloguj się do witryny internetowej Kudu (
https://*yourwebsitename*.scm.azurewebsites.net). - Wybierz menu Eksplorator procesów.
- W przypadku procesu w3wp.exe wybierz pozycję Właściwości.
- Zaloguj się do witryny internetowej Kudu (
Nie mogę znaleźć plików dziennika w strukturze folderów mojej aplikacji internetowej podczas korzystania z lokalnej funkcji pamięci podręcznej usługi App Service
Jeśli używasz funkcji lokalnej pamięci podręcznej usługi App Service, ma to wpływ na strukturę folderów LogFiles i Data dla wystąpienia usługi App Service. Gdy używana jest lokalna pamięć podręczna, system tworzy podfoldery w folderach LogFiles i Data w magazynie. Podfoldery są nazywane według wzorca: „unikatowy identyfikator” i znacznik czasu. Każdy podfolder odpowiada instancji maszyny wirtualnej (VM), na której aplikacja internetowa jest uruchomiona lub była uruchomiona.
Aby określić, czy używasz lokalnej pamięci podręcznej, sprawdź kartę Ustawienia aplikacji usługi App Service. Jeśli system używa lokalnej pamięci podręcznej, ustawienie WEBSITE_LOCAL_CACHE_OPTION aplikacji jest ustawione na Always.
Aby włączyć śledzenie żądań, które zakończyło się niepowodzeniem
Aby włączyć śledzenie żądań, które zakończyło się niepowodzeniem, wykonaj następujące kroki:
W witrynie Azure Portal przejdź do aplikacji internetowej.
Wybierz pozycję Wszystkie ustawienia>Dzienniki diagnostyczne.
Dla Śledzenie żądań zakończonych niepowodzeniem wybierz pozycję Włączone.
Wybierz pozycję Zapisz.
W bloku aplikacji internetowej wybierz pozycję Narzędzia.
Wybierz pozycję Visual Studio Online.
Jeśli ustawienie nie jest Włączone, wybierz Włączone.
Wybierz Go.
Wybierz pozycję Web.config.
W pliku system.webServer dodaj następującą konfigurację (aby przechwycić określony adres URL):
<system.webServer> <tracing> <traceFailedRequests> <remove path="*api*" /> <add path="*api*"> <traceAreas> <add provider="ASP" verbosity="Verbose" /> <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" /> <add provider="ISAPI Extension" verbosity="Verbose" /> <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression, Cache,RequestNotifications,Module,FastCGI" verbosity="Verbose" /> </traceAreas> <failureDefinitions statusCodes="200-999" /> </add> </traceFailedRequests> </tracing>Aby rozwiązać problemy z niską wydajnością, dodaj tę konfigurację (jeśli żądanie przechwytywania trwa dłużej niż 30 sekund):
<system.webServer> <tracing> <traceFailedRequests> <remove path="*" /> <add path="*"> <traceAreas> <add provider="ASP" verbosity="Verbose" /> <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" /> <add provider="ISAPI Extension" verbosity="Verbose" /> <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression, Cache,RequestNotifications,Module,FastCGI" verbosity="Verbose" /> </traceAreas> <failureDefinitions timeTaken="00:00:30" statusCodes="200-999" /> </add> </traceFailedRequests> </tracing>Aby pobrać ślady żądań, które zakończyły się niepowodzeniem, w portalu Azure przejdź do witryny internetowej.
Wybierz pozycje Narzędzia>Kudu>Go.
W menu wybierz Konsola debugowania>CMD.
Wybierz folder LogFiles, a następnie wybierz folder o nazwie rozpoczynającej się od W3SVC.
Aby wyświetlić plik XML, wybierz ikonę ołówka.
Dodatkowe zalecenia dotyczące wydajności i odporności
Usługa Application Insights i usługa Azure Monitor zapewniają pełny wgląd w pełny stos aplikacji App Service, w tym telemetrię, śledzenie zależności i metryki na żywo.
Jeśli wdrażasz rozwiązanie w regionach obsługujących strefy dostępności, rozważ włączenie nadmiarowości strefowej, aby zwiększyć odporność na wypadek awarii regionalnych. Aby uzyskać więcej informacji, zobacz Niezawodność w usłudze Azure App Service.
Usługa App Service przechodzi rutynową konserwację w celu zapewnienia niezawodności platformy. Aby uzyskać większą kontrolę nad zachowaniem aktualizacji, szczególnie w środowisku App Service Environment w wersji 3, skonfiguruj preferencje uaktualniania. Aby uzyskać więcej informacji, zobacz Rutynowa (planowana) konserwacja usługi Azure App Service.