hur och varför att övervaka Server CPU-användning
när jag använder något program, jag vill att det ska vara snabb. Snabba applikationer gör mig glad. Och jag är säker på att det är samma sak med alla. Om du äger någon applikation som fungerar med internet är det viktigt att fokusera på serverns prestanda. Det finns många saker att ta hand om för att ha en väl fungerande server. Men för att förbättra något måste du veta var det står i första hand. Därför är övervakning av din server det första steget för att öka serverns prestanda.
när man pratar om vad man ska övervaka för att förstå en servers prestanda finns det många mätvärden som kan komma upp. Vi kommer att fokusera på bara en i det här inlägget: server CPU-användning. Vi börjar med att förklara vad server CPU-användning är, och sedan diskuterar vi varför och hur man övervakar det.
Vad betyder server CPU-användning?
allt som händer på servern är en uppgift för systemet. Denna uppgift bryts ner till processer som körs av servern. Processer kan ha olika komplexiteter och skiljer sig åt i hur snabbt de kan slutföras. Och baserat på detta tar CPU lite tid att utföra processen. Med andra ord används CPU för att utföra processen. CPU-användning är den procentandel av tiden som CPU används för att slutföra sina uppgifter.
när ditt system är igång kan en CPU vara i tre tillstånd: tomgång, upptagen eller väntar på I/O.
tomgång
när CPU: n är i viloläge gör CPU: n ingenting. Det väntar bara på att en uppgift ska tilldelas den. Det är högst osannolikt att se en CPU i viloläge om du har ett enda processorsystem. Även om du inte kör någon applikation eller gör någonting, skulle CPU användas för att utföra operativsystemuppgifter. Men om ditt system har flera processorer kan du se en eller några av dem lediga. Detta kan bero på att endast en eller få processorer används och de andra inte har något att göra.
upptagen
motsatsen till viloläge är upptagen tillstånd, vilket är när CPU används för att utföra en process. En CPU ansvarar för olika typer av uppgifter. Under processen att utföra uppgifter gör en CPU fyra saker:
- hämta: instruktionerna för att slutföra uppgiften lagras i minnet. CPU måste få dessa instruktioner från minnet för att förstå vad man ska göra.
- avkoda: instruktionerna för CPU kan vara i olika format, till exempel ett program. Låt oss till exempel säga att du skrev ett program i C, Java eller Python. Processorer kan inte direkt förstå dessa kodningsspråk. Den måste avkoda den till en form som den kan förstå.
- exekvera: Detta är när CPU faktiskt gör uppgiften.
- Lagring: när processorn har slutfört uppgiften måste den ge feedback om uppgiften. Resultaten efter uppgiftsutförande lagras i minnet.
I/O-operationer
detta är det tillstånd där CPU: n inte är helt ledig men inte heller upptagen. Under en processexekvering kan en CPU behöva mata ut vissa data till en annan komponent eller process. Eller CPU kan behöva vänta med att få data från en annan process eller komponent. I så fall väntar den på att I/O-operationen ska vara klar så att den kan återuppta sin uppgift.
CPU-användning är måttet på CPU när det är i ett icke-viloläge. Även om CPU-användningen mäts i procent kan du se att CPU-användningsvärdena är större än 100%. Det betyder inte att CPU: n är överbelastad. Till exempel skulle du se CPU-användning större än 100% i multiprocessorsystem. Värdet av CPU-användning för ett system är summan av andelen CPU-användning av enskilda processorer. Så om du har två processorer och en av dem har en CPU-användning på 60% och den andra har en CPU-användning på 50%, skulle det totala CPU-användningsvärdet vara 110%.
Vad orsakar hög CPU-användning?
att hitta kärnan i problemet hjälper dig att implementera bättre lösningar för hög CPU-användning. Det kan finnas olika orsaker till CPU-användning baserat på användningsfall. Jag listar de vanligaste orsakerna.
processer med högt CPU-krav
vissa program kräver höga CPU-resurser. Om du har ett lågt specifikationssystem och försöker köra ett avancerat videospel, kommer uppenbarligen CPU-användningen att gå igenom taket. På samma sätt kan det finnas olika processer som kräver höga CPU-resurser för att fungera. Sådana processer eller ett antal processer som som delsumma använder hög CPU kan vara en av orsakerna. På servrar, kör flera tjänster för att hålla servern igång, simuleringar etc., kan orsaka hög CPU-användning.
bakgrundsprocesser
processer kan primärt delas in i 2 kategorier: systemprocesser och applikationsprocesser. Systemprocesser är de processer som behövs för att hålla ditt system igång. Applikationsprocesser är de processer som du skulle använda för ett specifikt syfte. När dessa processer fortsätter att köras i bakgrunden äter de upp CPU-resurser.
många applikationsprocesser fortsätter att köras i bakgrunden även efter att du stängt programfönstret. Detta är mindre sannolikt att hända på en server eftersom en server vanligtvis underhålls och rengörs regelbundet för att bara ha de processer den behöver men det är fortfarande möjligt.
Malware
Malware (skadlig programvara) är program som används av skadliga aktörer för att attackera ditt system eller för att utföra olagliga åtgärder på ditt system. Inledningsvis använder malware inte höga CPU-resurser för att hålla sig dolda, men när de börjar utföra skadliga åtgärder orsakar de hög CPU-användning. Jag bevittnade denna incident där skadlig kod hade inducerats på en server en vecka innan och en dag började det överföra all känslig data från servern till molnlagring. Så, den här skadliga programvaran använde inte mycket CPU-resurser medan den skapade saker och hittade kritiska data. Men när den hittade allt den behövde, var det en stor ökning av CPU-användningen på grund av dataöverföring.
Ooptimerad kod
det är vanligt att ha anpassad kod som körs på servrar för specifika uppgifter. Om sådana koder inte är optimerade kan de sluta använda många CPU-resurser. Ooptimerade loopar och rekursion är några av de vanligaste orsakerna till hög CPU-användning på grund av ooptimerad kod.
vanliga korrigeringar för hög CPU-användning
baserat på de tidigare adresserade vanliga orsakerna, låt oss titta på några av de vanliga korrigeringarna för hög CPU-användning.
starta om
en systemstart är en lösning för de flesta datorproblem. Hur skulle det hjälpa till att minska CPU-användningen? En omstart skulle stänga alla bakgrundsprocesser som kan ha startat på grund av någon åtgärd men du behöver inte längre det. Det skulle också avsluta zombieprocesser eller andra processer som körs på obestämd tid på grund av fel. Så omstart av ditt system skulle rengöra alla (åtminstone de flesta) av onödiga processer och minska CPU-användningen.
avsluta bakgrundsprocesser
omstart av systemet kanske inte är möjligt, särskilt för servrar. Så du måste hantera onödiga processer utan att starta om systemet. För att göra detta kan du lista alla processer som körs, identifiera vilka processer som är onödiga och avsluta dem. Så här skulle det se ut i windows task manager:
en annan fix är att hantera startprocesser. Det finns några processer som är konfigurerade att starta så snart ditt system startar. Några av dessa är nödvändiga och andra inte. Du kan identifiera sådana processer och inaktivera dem från autostart. I windows kan du hitta dem under fliken” Startup ” i Aktivitetshanteraren:
Anti-Malware
Malware är farligt. Inte bara när det gäller CPU-användning utan i allmänhet också. Vissa skadliga program orsakar hög CPU-användning och att använda anti-malware kan vara ditt bästa försvar mot sådan skadlig kod. Modern anti-malware-programvara är smart och avancerad. De kan inte bara identifiera skadlig kod i ditt system och ta bort eller karantänera dem, men de kan också förhindra att skadlig kod kommer in på ditt system. Så genom att använda anti-malware kommer du inte bara att fixa hög CPU-användning utan också förhindra hög CPU-användning på grund av skadlig kod.
kodoptimering
om du identifierar att orsaken till hög CPU-användning beror på ooptimerad kod måste du optimera den. Du måste analysera koden och ta reda på vilken del av koden som förbrukar CPU-resurser och optimera den.
CPU-uppgradering
om du har fixat alla andra problem och optimerat allt och fortfarande ser hög CPU-användning betyder det att ditt CPU-krav är högt. I sådana fall finns det inget annat alternativ än att uppgradera dina CPU-resurser.
varför ska du övervaka Server CPU-användning?
en server kan ha två typer av jobb att slutföra på en hög nivå: ett jobb från användaren och ett jobb inom systemet. Ett jobb från användaren är när en användare har begärt en tjänst eller data från servern. Låt oss säga att du går till YouTube och söker efter något. YouTubes server måste hämta alla videor som är relevanta för din sökning och skicka det som svar på din begäran. Denna transaktion av data använder CPU-tid.
en server har andra uppgifter än att bara svara på användare. Det säger sig självt att dess CPU används för att köra operativsystemet och webbtjänsterna. Men bortsett från detta kan servrar användas för att köra vissa skript för att bearbeta data. Ett vanligt exempel är att köra Ansible playbooks. Dessa spelböcker kan utföra uppgifter även utan att användaren behöver ingripa.
hantera resurser och uppgifter
om din CPU-användning är låg slösar du bort dina resurser. Och om din CPU-användning är mycket hög, saktar systemet ner och kan börja släpa. Du vill inte att någon av dessa ska hända, varför det är viktigt att övervaka serverns CPU-användning. Övervakning server CPU-användning hjälper dig att förstå hur mycket din CPU används. Detta kommer att hjälpa dig att avgöra om du kan göra din CPU göra fler jobb eller öka dina resurser för att tillgodose nödvändigheten.
Optimera program
övervakning server CPU-användning har varit mycket fördelaktigt att hantera resurser samt att optimera uppgifter. Det har förekommit fall där program tar mer tid än de helst borde ta. När du ser att CPU-användningen är högre även när du kör ett kort, enkelt program, vet du att det är något fel med ditt program. Ofta är programmen inte effektiva på grund av dålig programmeringspraxis. Övervakning av CPU-användning kan hjälpa dig att hitta sådana fall och Optimera kod. Därför är övervakning av CPU-användning som att slå två fåglar med en enda sten.
nu när vi är färdiga med ”vad” och ”varför” av CPU-användning och lärde oss hur fördelaktig övervakning av serverns CPU-användning kan vara, låt oss komma till ”hur” – delen.
hur man övervakar serverns CPU-användning
CPU-användning är inte något som pengar som du kan spara över en tidsperiod och sedan använda den när du vill. Oanvänd CPU är en bortkastad resurs. Därför vill alla att serverns CPU-användning ska vara nära 100%. Och för att hålla det som bäst kan du behöva göra lite tweaking och fortsätta uppdatera systemet. För att veta vad du ska göra måste du veta den aktuella statusen för serverns CPU-användning.
du kan kontrollera din server CPU-användning med ett enda kommando. Om du har ett Windows-operativsystem öppnar du kommandotolken och kör det här kommandot:
wmic cpu get loadpercentage
du bör se CPU – användningsprocenten som visas i den här skärmdumpen:
baserat på dina krav, du kan Fråga för CPU-användning med jämna mellanrum och lagra data någonstans, och sedan titta på det senare. Eller så kan du strömma CPU-användning i en instrumentpanel för att övervaka när som helst.
de flesta operativsystem har inbyggda verktyg och verktyg för övervakning av CPU-användning. Men dessa verktyg har begränsningar och de är vanligtvis för grundläggande. I nuvarande ålder behöver vi avancerade funktioner för att hantera och arbeta med övervakningsdata och det kräver behovet av avancerade övervakningsverktyg. Nästan varje tjänst är online nu. Och servrar spelar en viktig roll för att göra dessa tjänster tillgängliga. Du har inte råd att vänta ett par timmar för att veta att din server är nere på grund av hög CPU-användning. Du måste kontinuerligt övervaka CPU-användning och andra servermått.
övervaka kontinuerligt
kontrollera server CPU-användning vid en tidpunkt är inte till stor nytta. Du behöver en lösning för att kontinuerligt övervaka serverns CPU-användning. Nästan varje serveroperativsystem levereras med en prestandamonitor där du kan se CPU-användningen när som helst. När du övervakar serverns CPU-användning bör du leta efter spikar, eftersom plötsliga förändringar i CPU-användningen indikerade att något ovanligt har hänt.
tillsammans med övervakning CPU-användning i realtid, du vill lagra dessa data så att du kan visualisera och analysera det med olika intervall. För att få ut det mesta av CPU-användningsstatistik bör du samla in CPU-användningsdata med jämna mellanrum (helst i realtid) genom att generera loggar, och du bör visualisera det i form av grafer. Vi har just talat om en metrisk, men glöm inte att server CPU-användning inte är det enda att övervaka. För att få allt du behöver på ett ställe, Använd Scalyr.