Rozwiązywanie problemów ze stanem obniżonej wydajności usługi Azure Traffic Manager
W tym artykule opisano sposób rozwiązywania problemów z profilem usługi Azure Traffic Manager, który pokazuje stan obniżonej wydajności. Pierwszym krokiem rozwiązywania problemów ze stanem obniżonej wydajności usługi Azure Traffic Manager jest włączenie rejestrowania. Aby uzyskać więcej informacji, zobacz Włączanie dzienników zasobów. W tym scenariuszu należy rozważyć skonfigurowanie profilu usługi Traffic Manager wskazującego niektóre usługi cloudapp.net hostowane. Jeśli kondycja usługi Traffic Manager wyświetla stan Obniżona wydajność, stan co najmniej jednego punktu końcowego może mieć obniżoną sprawność:
Jeśli kondycja usługi Traffic Manager wyświetla stan Nieaktywny , oba punkty końcowe mogą być wyłączone:
Informacje o sondach usługi Traffic Manager
- Usługa Traffic Manager uważa punkt końcowy za punkt końcowy online tylko wtedy, gdy sonda odbiera odpowiedź HTTP 200 z powrotem ze ścieżki sondy. Jeśli aplikacja zwróci jakikolwiek inny kod odpowiedzi HTTP, należy dodać ten kod odpowiedzi do oczekiwanych zakresów kodu stanu profilu usługi Traffic Manager.
- 30-krotna odpowiedź przekierowania jest traktowana jako błąd, chyba że określisz ten kod jako prawidłowy kod odpowiedzi w polach Oczekiwany kod stanu profilu usługi Traffic Manager. Usługa Traffic Manager nie sonduje docelowego przekierowania.
- W przypadku sond HTTPs błędy certyfikatu są ignorowane.
- Rzeczywista zawartość ścieżki sondy nie ma znaczenia, o ile zostanie zwrócona wartość 200. Sondowanie adresu URL do jakiejś zawartości statycznej, takiej jak "/favicon.ico", jest powszechną techniką. Zawartość dynamiczna, taka jak strony ASP, może nie zawsze zwracać wartość 200, nawet jeśli aplikacja jest w dobrej kondycji.
- Najlepszym rozwiązaniem jest ustawienie ścieżki sondy na coś, co ma wystarczającą logikę, aby określić, czy lokacja jest w górę lub w dół. W poprzednim przykładzie, ustawiając ścieżkę na "/favicon.ico", testujesz tylko to, że w3wp.exe odpowiada. Ta sonda może nie wskazywać, że aplikacja internetowa jest w dobrej kondycji. Lepszym rozwiązaniem jest ustawienie ścieżki do elementu takiego jak "/Probe.aspx", które ma logikę określania kondycji lokacji. Można na przykład użyć liczników wydajności do wykorzystania procesora CPU lub mierzyć liczbę żądań zakończonych niepowodzeniem. Możesz też spróbować uzyskać dostęp do zasobów bazy danych lub stanu sesji, aby upewnić się, że aplikacja internetowa działa.
- Jeśli wszystkie punkty końcowe w profilu mają obniżoną wydajność, usługa Traffic Manager traktuje wszystkie punkty końcowe jako w dobrej kondycji i kieruje ruch do wszystkich punktów końcowych. Takie zachowanie zapewnia, że problemy z mechanizmem sondowania nie powodują całkowitej awarii usługi.
Rozwiązywanie problemów
Aby rozwiązać problem z niepowodzeniem sondy, potrzebne jest narzędzie, które wyświetla kod stanu HTTP zwracany z adresu URL sondy. Dostępnych jest wiele narzędzi, które pokazują nieprzetworzone odpowiedzi HTTP.
Ponadto możesz użyć karty Sieć narzędzi debugowania F12 w programie Internet Explorer, aby wyświetlić odpowiedzi HTTP.
W tym przykładzie chcemy zobaczyć odpowiedź z adresu URL sondy: http://watestsdp2008r2.cloudapp.net:80/Probe. Poniższy przykład programu PowerShell ilustruje problem.
Invoke-WebRequest 'http://watestsdp2008r2.cloudapp.net/Probe' -MaximumRedirection 0 -ErrorAction SilentlyContinue | Select-Object StatusCode,StatusDescription
Przykładowe wyjście:
StatusCode StatusDescription
---------- -----------------
301 Moved Permanently
Zwróć uwagę, że otrzymaliśmy odpowiedź przekierowania. Jak wspomniano wcześniej, każdy kod stanu inny niż 200 jest uznawany za błąd. Usługa Traffic Manager zmienia stan punktu końcowego na Offline. Aby rozwiązać ten problem, sprawdź konfigurację witryny internetowej, aby upewnić się, że można zwrócić prawidłowy kod stanu ze ścieżki sondy. Skonfiguruj ponownie sondę usługi Traffic Manager, aby wskazywała ścieżkę zwracającą wartość 200.
Jeśli sonda korzysta z protokołu HTTPS, może być konieczne wyłączenie sprawdzania certyfikatów, aby uniknąć błędów protokołu SSL/TLS podczas testu. Następujące instrukcje programu PowerShell wyłączają walidację certyfikatu dla bieżącej sesji programu PowerShell:
add-type @"
using System.Net;
using System.Security.Cryptography.X509Certificates;
public class TrustAllCertsPolicy : ICertificatePolicy {
public bool CheckValidationResult(
ServicePoint srvPoint, X509Certificate certificate,
WebRequest request, int certificateProblem) {
return true;
}
}
"@
[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy
Następne kroki
Informacje o metodach routingu ruchu w usłudze Traffic Manager
Co to jest usługa Traffic Manager
Operacje w usłudze Traffic Manager (dokumentacja interfejsu API REST)