Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł ułatwia rozwiązywanie problemów z niską wydajnością aplikacji w usłudze aplikacja systemu Azure Service.
Jeśli potrzebujesz więcej pomocy w dowolnym momencie tego artykułu, skontaktuj się z ekspertami platformy Azure w pomocy technicznej społeczności platformy Azure. Alternatywnie możesz zgłosić incydent do pomocy technicznej Azure. Przejdź do pomocy technicznej platformy Azure i wybierz pozycję Prześlij bilet pomocy technicznej.
Objaw
Podczas przeglądania aplikacji strony ładują się powoli i czasami dochodzi do przekroczenia limitu czasu.
Przyczyna
Ten problem jest często spowodowany problemami na poziomie aplikacji, takimi jak:
- Żądania sieciowe trwają długo
- Niewydajne zapytania dotyczące kodu aplikacji lub bazy danych
- Aplikacja korzystająca z dużej ilości pamięci/procesora CPU
- Awaria aplikacji z powodu wyjątku
Kroki rozwiązywania problemów
Rozwiązywanie problemów można podzielić na trzy odrębne zadania w kolejności sekwencyjnej:
Usługa App Service oferuje różne opcje w każdym kroku.
Obserwowanie i monitorowanie zachowania aplikacji
Śledzenie kondycji usługi
Platforma Azure upublicznia każdą przerwę w działaniu usługi lub obniżenie wydajności. Kondycję usługi można śledzić w witrynie Azure Portal. Aby uzyskać więcej informacji, zobacz Wyświetlanie powiadomień o kondycji usługi przy użyciu witryny Azure Portal.
Monitorowanie aplikacji
Możesz użyć narzędzi do monitorowania w witrynie Azure Portal, aby dowiedzieć się, czy aplikacja ma jakiekolwiek problemy. W obszarze Monitorowanie w menu paska bocznego wybierz pozycję Metryki. W menu rozwijanym Metryka są wyświetlane wszystkie metryki, które można dodać.
Oto niektóre metryki, które mogą być monitorowane dla aplikacji:
- Średni zestaw roboczy pamięci
- Czas procesora CPU
- Zestaw roboczy pamięci
- Żądania
- Czas odpowiedzi
Aby uzyskać więcej informacji, zobacz:
Monitorowanie stanu internetowego punktu końcowego
Jeśli aplikacja jest uruchomiona w warstwie cenowej Standardowa , usługa App Service umożliwia monitorowanie dwóch punktów końcowych z trzech lokalizacji geograficznych.
Monitorowanie punktów końcowych konfiguruje testy internetowe z lokalizacji rozproszonych geograficznie, które testują czas odpowiedzi i czas działania internetowych adresów URL. Test wykonuje operację HTTP GET na adresie URL strony internetowej, aby określić czas odpowiedzi i dostępność z każdej lokalizacji. Każda skonfigurowana lokalizacja uruchamia test co pięć minut.
Czas pracy jest monitorowany przy użyciu kodów odpowiedzi HTTP, a czas odpowiedzi jest mierzony w milisekundach. Test monitorowania kończy się niepowodzeniem, jeśli kod odpowiedzi HTTP jest większy lub równy 400 lub jeśli odpowiedź trwa dłużej niż 30 sekund. Punkt końcowy jest uznawany za dostępny, jeśli jego testy monitorowania kończą się powodzeniem ze wszystkich określonych lokalizacji.
Aby ją skonfigurować, zobacz Azure App Service quotas and metrics (Limity przydziału i metryki usługi Azure App Service).
Monitorowanie wydajności aplikacji przy użyciu rozszerzeń
Wydajność aplikacji można również monitorować przy użyciu rozszerzenia witryny.
Każda aplikacja usługi App Service udostępnia rozszerzalny punkt końcowy zarządzania, który umożliwia korzystanie z zaawansowanego zestawu narzędzi wdrożonych jako rozszerzenia witryny. Rozszerzenia obejmują:
- Edytory kodu źródłowego, takie jak GitHub Codespaces.
- Narzędzia do zarządzania połączonymi zasobami, takimi jak baza danych MySQL połączona z aplikacją.
aplikacja systemu Azure Insights to rozszerzenie lokacji monitorowania wydajności, które jest również dostępne. Aby użyć usługi Application Insights, należy ponownie skompilować kod za pomocą zestawu SDK. Można również zainstalować rozszerzenie, które zapewnia dostęp do dodatkowych danych. Zestaw SDK umożliwia pisanie kodu w celu bardziej szczegółowego monitorowania użycia i wydajności aplikacji. Aby uzyskać więcej informacji, zobacz Wprowadzenie do usługi Application Insights — obserwowalność OpenTelemetry.
Zbieranie danych
Usługa App Service udostępnia funkcje diagnostyczne służące do rejestrowania informacji zarówno z serwera internetowego, jak i aplikacji internetowej. Informacje są oddzielone diagnostyką serwera internetowego i diagnostyką aplikacji.
Włączanie diagnostyki serwera internetowego
Możesz włączyć lub wyłączyć następujące rodzaje dzienników:
- Szczegółowe rejestrowanie błędów: szczegółowe informacje o błędach kodów stanu HTTP, które wskazują błąd (kod stanu 400 lub nowszy). Może to zawierać informacje, które mogą pomóc w ustaleniu, dlaczego serwer zwrócił kod błędu.
- Śledzenie żądań niepomyślnych: szczegółowe informacje na temat żądań, w tym ślad składników usług IIS używanych do przetwarzania żądania i czasu potrzebnego w każdym składniku. Może to być przydatne, jeśli próbujesz poprawić wydajność aplikacji lub wyizolować przyczynę określonego błędu HTTP.
- Rejestrowanie serwera internetowego: informacje o transakcjach HTTP przy użyciu rozszerzonego formatu pliku dziennika W3C. Jest to przydatne podczas określania ogólnych metryk aplikacji, takich jak liczba obsługiwanych żądań lub liczba żądań z określonego adresu IP.
Włączanie diagnostyki aplikacji
Istnieje kilka opcji zbierania danych wydajności aplikacji z usługi App Service, profilowania aplikacji na żywo z programu Visual Studio lub modyfikowania kodu aplikacji w celu rejestrowania dodatkowych informacji i śladów. Możesz wybrać opcje na podstawie ilości dostępu do aplikacji i obserwowanych z poziomu narzędzi do monitorowania.
Korzystanie z profilera usługi Application Insights
Możesz włączyć profilera usługi Application Insights, aby rozpocząć przechwytywanie szczegółowych śladów wydajności. Możesz uzyskać dostęp do śladów przechwyconych sprzed maksymalnie pięciu dni, gdy trzeba zbadać problemy. Możesz wybrać tę opcję, o ile masz dostęp do zasobu usługi Application Insights aplikacji w witrynie Azure Portal.
Usługa Application Insights Profiler udostępnia statystyki dotyczące czasu odpowiedzi dla każdego wywołania internetowego i śladów wskazujących, który wiersz kodu spowodował powolne odpowiedzi. Czasami aplikacja usługi App Service działa wolno, ponieważ określony kod nie jest napisany w wydajny sposób. Przykłady obejmują sekwencyjny kod, który można uruchomić równolegle i niepożądane rywalizacje o blokady bazy danych. Usunięcie tych wąskich gardeł w kodzie zwiększa wydajność aplikacji, ale trudno je wykryć bez konfigurowania skomplikowanych śladów i dzienników. Ślady zebrane przez profilera usługi Application Insights pomagają zidentyfikować wiersze kodu, które spowalniają aplikację i pokonują to wyzwanie dla aplikacji usługi App Service.
Aby uzyskać więcej informacji, zobacz Włączanie programu .NET Profiler dla aplikacji usługi Azure App Service w systemie Windows.
Ręczne konfigurowanie śladów diagnostycznych
Jeśli masz dostęp do kodu źródłowego aplikacji internetowej, diagnostyka aplikacji umożliwia przechwytywanie informacji generowanych przez aplikację internetową. ASP.NET aplikacje mogą używać System.Diagnostics.Trace klasy do rejestrowania informacji w dzienniku diagnostycznym aplikacji. Należy jednak zmienić kod i ponownie wdrożyć aplikację. Ta metoda jest zalecana, jeśli aplikacja jest uruchomiona w środowisku testowym.
Aby uzyskać szczegółowe instrukcje dotyczące konfigurowania aplikacji na potrzeby rejestrowania, zobacz Włączanie rejestrowania diagnostycznego dla aplikacji w usłudze Azure App Service.
Korzystanie z narzędzia diagnostycznego
Usługa App Service udostępnia inteligentne i interaktywne środowisko ułatwiające rozwiązywanie problemów z aplikacją bez konieczności konfigurowania. Gdy napotkasz problemy z aplikacją, narzędzie diagnostyczne wskazuje, co jest nie tak i kieruje Cię do właściwych informacji, co pozwala łatwiej i szybciej rozwiązać problem.
Aby uzyskać dostęp do diagnostyki usługi App Service, przejdź do aplikacji usługi App Service lub środowiska App Service Environment w witrynie Azure Portal. W menu paska bocznego wybierz pozycję Diagnozuj i rozwiąż problemy.
Korzystanie z konsoli debugowania Kudu
Usługa App Service zawiera konsolę debugowania, której można użyć do debugowania, eksplorowania, przekazywania plików oraz punktów końcowych JSON w celu uzyskania informacji o środowisku. Ta konsola jest nazywana konsolą Kudu lub pulpitem nawigacyjnym SCM dla aplikacji.
Dostęp do tego pulpitu nawigacyjnego można uzyskać, przechodząc do witryny Kudu.
Oto niektóre z rzeczy, które zapewnia Kudu:
- Ustawienia środowiska dla aplikacji
- Strumień logu
- Zrzut diagnostyczny
- Konsola debugowania, w której można uruchamiać polecenia cmdlet programu PowerShell i podstawowe polecenia DOS
Inną przydatną funkcją kudu jest to, że w przypadku, gdy aplikacja zgłasza wyjątki pierwszej szansy, można użyć narzędzia Kudu i narzędzia SysInternals Procdump do utworzenia zrzutów pamięci. Te zrzuty pamięci to migawki procesu i często mogą pomóc w rozwiązywaniu bardziej skomplikowanych problemów z aplikacją.
Aby uzyskać więcej informacji na temat funkcji dostępnych w usłudze Kudu, zobacz Narzędzia online usługi Windows Azure Websites, o których warto wiedzieć.
Eliminowanie problemu
Wykonaj skalowanie aplikacji
W usłudze App Service w celu zwiększenia wydajności i przepływności możesz dostosować skalę, w której działa aplikacja. Skalowanie aplikacji w górę obejmuje dwie powiązane akcje: zmianę planu usługi App Service na wyższą warstwę cenową i skonfigurowanie pewnych ustawień po przełączeniu się do wyższej warstwy cenowej.
Aby uzyskać więcej informacji na temat skalowania, zobacz Skalowanie aplikacji w usłudze aplikacja systemu Azure Service.
Ponadto możesz uruchomić aplikację w więcej niż jednym wystąpieniu. Skalowanie w górę nie tylko zapewnia większą możliwości przetwarzania, ale także zapewnia pewną odporność na uszkodzenia. Jeśli proces ulegnie awarii w jednym wystąpieniu, pozostałe wystąpienia będą nadal obsługiwać żądania.
Skalowanie można ustawić na ręczne lub automatyczne.
Korzystanie z automatycznego uzdrowienia
Automatyczna naprawa ponownie uruchamia proces roboczy dla Twojej aplikacji zgodnie z wybranymi ustawieniami, takimi jak zmiany konfiguracji, żądania, limity pamięciowe lub czas potrzebny do wykonania żądania. W większości przypadków recykling procesu jest najszybszym sposobem na odzyskanie sprawności po problemie. Mimo że zawsze możesz ponownie uruchomić aplikację bezpośrednio w witrynie Azure Portal, automatyczne uzdrowienie automatycznie wykonuje ją automatycznie. Wystarczy dodać niektóre wyzwalacze w katalogu głównym web.config aplikacji. Te ustawienia będą działać w taki sam sposób, nawet jeśli aplikacja nie jest aplikacją platformy .NET.
Aby uzyskać więcej informacji, zobacz Autonaprawiania witryn internetowych platformy Azure.
Ponownie uruchom aplikację
Ponowne uruchamianie jest często najprostszym sposobem odzyskiwania po jednorazowych problemach. W witrynie Azure Portal możesz zatrzymać lub ponownie uruchomić aplikację.
Aplikację można również zarządzać przy użyciu programu Azure PowerShell. Aby uzyskać więcej informacji, zobacz Zarządzanie zasobami platformy Azure przy użyciu programu Azure PowerShell.