Dela via


Felsöka hög CPU-användning i AKS-kluster

Hög CPU-användning är ett symptom på ett eller flera program eller processer som kräver så mycket CPU-tid att datorns prestanda eller användbarhet påverkas. Hög CPU-användning kan ske på många sätt, men det beror främst på användarkonfigurationen.

När en nod i ett Azure Kubernetes Service-kluster (AKS) har hög CPU-användning kan de program som körs på den uppleva försämrad prestanda och tillförlitlighet. Program eller processer blir också instabila, vilket kan leda till problem utöver långsamma svar.

Den här artikeln hjälper dig att identifiera de noder och containrar som använder hög CPU och innehåller metodtips för att lösa hög CPU-användning.

Symptom

I följande tabell beskrivs vanliga symptom på hög CPU-användning:

Symptom Beskrivning
CPU-svält Processorintensiva program saktar ned andra program på samma nod.
Långsamma tillståndsändringar Poddar kan ta längre tid att förbereda sig.
NotReady-nodtillstånd En nod anger tillståndet NotReady . Det här problemet beror på att containern med hög CPU-användning gör att Kubectl-kommandoradsverktyget inte svarar.

Checklista för felsökning

Använd effektiva övervakningsverktyg och tillämpa metodtips för att lösa hög CPU-användning.

Steg 1: Identifiera noder/containrar med hög CPU-användning

Använd någon av följande metoder för att identifiera noder och containrar med hög CPU-användning:

  • I en webbläsare använder du funktionen Container Insights i AKS i Azure Portal.

  • I en konsol använder du Kubernetes kommandoradsverktyg (kubectl).

Container Insights är en funktion i AKS. Den är utformad för att övervaka prestanda för containerarbetsbelastningar. Du kan använda Container Insights för att identifiera noder, containrar eller poddar som ger hög CPU-användning.

Följ dessa steg för att identifiera noder, containrar eller poddar som har hög CPU-användning:

  1. Gå till klustret från Azure Portal.

  2. Under Övervakning väljer du Insikter.

    Skärmbild av övervakningen under Insikter

  3. Ange lämpligt tidsintervall.

    Skärmbild av ett tidsintervall på sex timmar.

  4. Leta upp noderna med hög CPU-användning och kontrollera om nodens CPU-användning är stabil.

    Välj Noder. Ange Mått till CPU-användning (millicores) och ställ sedan in exemplet på Max. Använd sorteringsfunktionen på Max för att sortera noderna efter Max%. Noderna med den högsta CPU-användningen visas längst upp.

    I följande skärmbild använder noden endast 12 % av den maximala PROCESSORn och har körts i 16 dagar.

    Skärmbild av noderna under valet Övervakning.

  5. När du har hittat noderna med hög CPU-användning väljer du noderna för att hitta poddar på dem och deras CPU-användning.

    Skärmbild av insiktsalternativet för poddar under valet Övervakning.

    Obs!

    Procentandelen processor- eller minnesanvändning för poddar baseras på cpu-begäran som angetts för containern. Den representerar inte procentandelen cpu- eller minnesanvändning för noden. Så titta på den faktiska cpu- eller minnesanvändningen i stället för procentandelen processor- eller minnesanvändning för poddar.

    När du har hämtat listan över poddar med hög CPU-användning kan du mappa den till de program som orsakar toppar i CPU-användningen.

Steg 2: Granska metodtipsen för att undvika hög CPU-användning

Läs följande tabell för att lära dig hur du implementerar metodtips för att undvika hög CPU-användning:

Metodtips Beskrivning
Ange lämpliga gränser för containrar Kubernetes tillåter att begäranden och begränsningar för resurser för containrar anges. Resursbegäranden och -gränser representerar det lägsta och högsta antalet resurser som en container kan använda. Vi rekommenderar att du anger lämpliga begäranden och gränser för att välja lämplig Kubernetes QoS-klass (Quality of Service) för varje podd.
Aktivera horizontal pod autoscaler (HPA) Genom att ange lämpliga gränser tillsammans med att aktivera HPA kan du lösa hög CPU-användning.
Välj högre virtuella SKU-datorer Om du vill hantera höga CPU-arbetsbelastningar använder du virtuella SKU-datorer med högre SKU. Det gör du genom att skapa en ny nodpool, spärra noderna för att göra dem oplanerade och tömma den befintliga nodpoolen.
Isolera system- och användararbetsbelastningar Vi rekommenderar att du skapar en separat nodpool (förutom agentpoolen) för att köra dina arbetsbelastningar. Detta kan förhindra överlagring av systemnodpoolen och ge bättre prestanda.

Referenser

Kontakta oss för att få hjälp

Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.