Rozwiązywanie problemów z dużym użyciem procesora CPU w klastrach usługi AKS
Wysokie użycie procesora CPU jest objawem co najmniej jednej aplikacji lub procesów, które wymagają tak dużo czasu procesora CPU, że ma to wpływ na wydajność lub użyteczność maszyny. Wysokie użycie procesora CPU może wystąpić na wiele sposobów, ale jest to głównie spowodowane konfiguracją użytkownika.
Gdy węzeł w klastrze usługi Azure Kubernetes Service (AKS) ma duże użycie procesora CPU, aplikacje działające na nim mogą mieć spadek wydajności i niezawodności. Aplikacje lub procesy również stają się niestabilne, co może prowadzić do problemów wykraczających poza powolne odpowiedzi.
Ten artykuł pomaga zidentyfikować węzły i kontenery, które zużywają wysokie użycie procesora CPU, i zawiera najlepsze rozwiązania dotyczące rozwiązywania problemów z wysokim użyciem procesora CPU.
Symptomy
W poniższej tabeli przedstawiono typowe objawy wysokiego użycia procesora CPU:
Objaw | opis |
---|---|
Głodowanie procesora CPU | Aplikacje intensywnie korzystające z procesora CPU spowalniają inne aplikacje w tym samym węźle. |
Powolne zmiany stanu | Przygotowanie zasobników może potrwać dłużej. |
Stan węzła NotReady | Węzeł wchodzi w stan NotReady . Ten problem występuje, ponieważ kontener o wysokim użyciu procesora CPU powoduje, że narzędzie wiersza polecenia Kubectl nie odpowiada. |
Lista kontrolna rozwiązywania problemów
Aby rozwiązać problemy z wysokim użyciem procesora CPU, użyj skutecznych narzędzi do monitorowania i zastosuj najlepsze rozwiązania.
Krok 1. Identyfikowanie węzłów/kontenerów z wysokim użyciem procesora CPU
Użyj jednej z następujących metod, aby zidentyfikować węzły i kontenery o wysokim użyciu procesora CPU:
W przeglądarce internetowej użyj funkcji Container Insights usługi AKS w witrynie Azure Portal.
W konsoli programu użyj narzędzia wiersza polecenia kubernetes (kubectl).
Container Insights to funkcja w usłudze AKS. Jest ona przeznaczona do monitorowania wydajności obciążeń kontenerów. Za pomocą usługi Container Insights można identyfikować węzły, kontenery lub zasobniki, które napędzają wysokie użycie procesora CPU.
Aby zidentyfikować węzły, kontenery lub zasobniki, które powodują wysokie użycie procesora CPU, wykonaj następujące kroki:
Przejdź do klastra z witryny Azure Portal.
W obszarze Monitorowanie wybierz pozycję Analizy.
Ustaw odpowiedni zakres czasu.
Znajdź węzły z wysokim użyciem procesora CPU i sprawdź, czy użycie procesora CPU węzła jest stabilne.
Wybierz pozycję Węzły. Ustaw wartość Metryka na Użycie procesora CPU (millicores), a następnie ustaw przykład na Wartość Maksymalna. Użyj funkcji sortowania na karcie Maksymalna, aby zamówić węzły według maksymalnej liczby. Węzły o najwyższym użyciu procesora CPU są wyświetlane u góry.
Na poniższym zrzucie ekranu węzeł używa tylko 12% maksymalnego procesora CPU i działa przez 16 dni.
Po zlokalizowaniu węzłów o wysokim użyciu procesora CPU wybierz węzły, aby znaleźć na nich zasobniki i ich użycie procesora CPU.
Uwaga 16.
Procent użycia procesora CPU lub pamięci dla zasobników jest oparty na żądaniu procesora CPU określonym dla kontenera. Nie reprezentuje ona wartości procentowej użycia procesora CPU ani pamięci dla węzła. Dlatego przyjrzyj się rzeczywistego użycia procesora CPU lub pamięci, a nie procentowego użycia procesora CPU lub pamięci dla zasobników.
Po pobraniu listy zasobników z wysokim użyciem procesora CPU możesz zamapować je na aplikacje, które powodują wzrost użycia procesora CPU.
Krok 2. Zapoznaj się z najlepszymi rozwiązaniami, aby uniknąć wysokiego użycia procesora CPU
Zapoznaj się z poniższą tabelą, aby dowiedzieć się, jak zaimplementować najlepsze rozwiązania dotyczące unikania wysokiego użycia procesora CPU:
Najlepsze rozwiązanie | opis |
---|---|
Ustawianie odpowiednich limitów dla kontenerów | Platforma Kubernetes umożliwia określanie żądań i limitów zasobów dla kontenerów. Żądania i limity zasobów reprezentują minimalną i maksymalną liczbę zasobów, których może używać kontener. Zalecamy ustawienie odpowiednich żądań i limitów, aby wybrać odpowiednią klasę Kubernetes Quality of Service (QoS) dla każdego zasobnika. |
Włączanie funkcji Horizontal Pod Autoscaler (HPA) | Ustawienie odpowiednich limitów wraz z włączeniem funkcji HPA może pomóc w rozwiązywaniu problemów z dużym użyciem procesora CPU. |
Wybieranie maszyn wirtualnych z wyższej jednostki SKU | Aby obsłużyć duże obciążenia procesora CPU, użyj maszyn wirtualnych z wyższej jednostki SKU. W tym celu utwórz nową pulę węzłów, odgrodź kordonem węzły w celu uczynienia ich niedostępnymi do zaplanowania i opróżnij istniejącą pulę węzłów. |
Izolowanie obciążeń systemu i użytkownika | Do uruchamiania własnych obciążeń zalecamy utworzenie oddzielnej puli węzłów (innej niż pula agentów). Może to zapobiec przeciążeniu puli węzłów systemowych i zapewnić lepszą wydajność. |
Informacje
- Omówienie szczegółowych informacji o kontenerach
- Monitorowanie wydajności klastra Kubernetes za pomocą usługi Container Insights
- Jak zarządzać agentem usługi Container Insights
- Limity zasobów
- Przydziały zasobów
- Zakresy limitów
- Jakość usług
Skontaktuj się z nami, aby uzyskać pomoc
Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii na temat platformy Azure.