Profilowanie aplikacji produkcyjnych na platformie Azure przy użyciu profilera usługi Application Insights dla platformy .NET
Diagnozowanie problemów z wydajnością aplikacji może być trudne, zwłaszcza w przypadku uruchamiania w środowisku produkcyjnym w chmurze dynamicznej. Powolne odpowiedzi w aplikacji mogą być spowodowane przez infrastrukturę, strukturę lub kod aplikacji obsługujący żądanie w potoku.
Za pomocą profilera usługi Application Insights dla platformy .NET można przechwytywać, identyfikować i wyświetlać ślady wydajności aplikacji działającej na platformie Azure, niezależnie od scenariusza. Proces śledzenia profilera platformy .NET odbywa się automatycznie, na dużą skalę i nie ma negatywnego wpływu na użytkowników. Program .NET Profiler identyfikuje:
- Średnie, najszybsze i najwolniejsze czasy odpowiedzi dla poszczególnych żądań sieci Web wysyłanych przez klientów.
- Ścieżka kodu "gorąca" spędza najwięcej czasu na obsłudze określonego żądania internetowego.
Włącz profiler dla platformy .NET we wszystkich aplikacjach platformy Azure, aby zebrać dane przy użyciu następujących wyzwalaczy:
- Wyzwalacz próbkowania: uruchamia profiler losowo około raz na godzinę przez dwie minuty.
- Wyzwalacz procesora CPU: uruchamia profilera, gdy procent użycia procesora CPU wynosi ponad 80 procent.
- Wyzwalacz pamięci: uruchamia profilera, gdy użycie pamięci przekracza 80 procent.
Każdy z tych wyzwalaczy można skonfigurować , włączyć lub wyłączyć.
Częstotliwość próbkowania i obciążenie
Domyślnie profiler aktywnie zbiera ślady co godzinę przez 30 sekund lub w okresach wysokiego użycia procesora CPU lub pamięci przez 30 sekund. Ślady godzinowe (nazywane próbkowaniem) doskonale nadają się do proaktywnego dostrajania, podczas gdy duże ślady procesora CPU i pamięci (nazywane wyzwalaczami) są przydatne do rozwiązywania problemów reaktywnych.
Uwaga
Gdy profiler usługi Application Insights dla platformy .NET aktywnie działa i zbiera ślady, zwykle dodaje między 5% do 15% obciążenia procesora CPU i pamięci na serwerze.
Nie ma dodatkowych kosztów przechowywania danych przechwyconych przez program .NET Profiler. Dane są automatycznie usuwane po upływie 15 dni.
Obsługiwane w profilerze platformy .NET
Profiler współpracuje z aplikacjami platformy .NET wdrożonych w następujących usługach platformy Azure. Wyświetl konkretne instrukcje dotyczące włączania profilera dla każdego typu usługi w poniższych linkach.
Platforma obliczeniowa | .NET (>= 4.6) | .NET Core |
---|---|---|
Azure App Service | Tak | Tak |
Maszyny wirtualne platformy Azure i zestawy skalowania maszyn wirtualnych dla systemu Windows | Tak | Tak |
Maszyny wirtualne platformy Azure i zestawy skalowania maszyn wirtualnych dla systemu Linux | Nie. | Tak |
Azure Cloud Services | Tak | Tak |
Usługa Azure Container Instances dla systemu Windows | Nie. | Tak |
Usługa Azure Container Instances dla systemu Linux | Nie. | Tak |
Kubernetes | Nie. | Tak |
Azure Functions | Tak | Tak |
Azure Service Fabric | Tak | Tak |
Uwaga
Możesz również użyć profilera Java dla usługi Azure Monitor Application Insights, obecnie w wersji zapoznawczej.
Jeśli włączono narzędzie Profiler dla platformy .NET, ale nie widzisz śladów, zobacz Przewodnik rozwiązywania problemów.
Ograniczenia
- Przechowywanie danych: domyślny okres przechowywania danych wynosi pięć dni.
- Profilowanie aplikacji internetowych:
- Mimo że można korzystać z programu .NET Profiler bez dodatkowych kosztów, aplikacja internetowa musi być hostowana w warstwie podstawową funkcji Web Apps usługi aplikacja systemu Azure Service, co najmniej.
- Do każdej aplikacji internetowej można dołączyć tylko jeden profiler.
- Program .NET Profiler w systemie Linux jest obsługiwany tylko w aplikacjach internetowych opartych na systemie Windows.
Następne kroki
Dowiedz się, jak włączyć program .NET Profiler w usłudze platformy Azure: