hvordan og hvorfor overvåge server CPU-brug
når jeg bruger et program, vil jeg have det hurtigt. Hurtige applikationer gør mig glad. Og jeg er sikker på, at det er det samme med alle. Hvis du ejer et program, der fungerer med internettet, er det vigtigt at fokusere på serverens ydeevne. Der er mange ting at tage sig af for at have en velfungerende server. Men for at forbedre noget, skal du vide, hvor det står i første omgang. Derfor er overvågning af din server det første skridt til at øge din servers ydeevne.
når man taler om, hvad man skal overvåge for at forstå en servers ydeevne, er der mange målinger, der kan komme op. Vi vil fokusere på kun en i dette indlæg: server CPU-brug. Vi starter med at forklare, hvad server CPU-brug er, og så diskuterer vi hvorfor og hvordan man overvåger det.
Hvad betyder server CPU-brug?
alt, hvad der sker på serveren, er en opgave for systemet. Denne opgave bryder ned til processer, der udføres af serveren. Processer kan have forskellige kompleksiteter og variere i, hvor hurtigt de kan gennemføres. Og baseret på dette tager CPU ‘ en lidt tid at udføre processen. Med andre ord bruges CPU ‘ en til at udføre processen. CPU-brug er den procentdel af tiden, som CPU ‘ en bruges til at udføre sine opgaver.
når dit system er i gang, kan en CPU være i tre tilstande: inaktiv, optaget eller venter på I/O.
inaktiv
når CPU ‘en er i inaktiv tilstand, gør CPU’ en intet. Det venter bare på, at en opgave tildeles den. Det er meget usandsynligt at se en CPU i inaktiv tilstand, hvis du har et enkelt processorsystem. Selvom du ikke kører noget program eller gør noget, vil CPU ‘ en blive brugt til at udføre operativsystemopgaver. Men hvis dit system har flere processorer, kan du se en eller nogle af dem inaktiv. Dette kan skyldes, at kun en eller få processorer bruges, og de andre ikke har noget at gøre.
optaget
det modsatte af inaktiv tilstand er optaget tilstand, hvilket er når CPU ‘ en bruges til at udføre en proces. En CPU er ansvarlig for forskellige typer opgaver. Under processen med at udføre opgaver gør en CPU fire ting:
- Hent: instruktionerne for at fuldføre opgaven gemmes i hukommelsen. CPU ‘ en skal hente disse instruktioner fra hukommelsen for at forstå, hvad de skal gøre.
- afkode: instruktionerne til CPU ‘ en kan være i forskellige formater, såsom et program. Lad os for eksempel sige, at du skrev et program i C, Java eller Python. CPU ‘ er kan ikke direkte forstå disse kodningssprog. Det skal afkode det til en form, som det kan forstå.
- Udfør: Dette er, når CPU ‘ en rent faktisk gør opgaven.
- opbevaring: når CPU ‘ en er færdig med opgaven, skal den give feedback om opgaven. Resultaterne efter opgaveudførelse gemmes i hukommelsen.
I/O-operationer
dette er den tilstand, hvor CPU ‘ en ikke er helt inaktiv, men heller ikke er optaget. Under en procesudførelse skal en CPU muligvis udsende nogle data til en anden komponent eller proces. Eller CPU ‘ en må muligvis vente med at hente data fra en anden proces eller komponent. I så fald venter det på, at I/O-operationen er færdig, så den kan genoptage udførelsen af sin opgave.
CPU-brug er mål for CPU ‘ en, når den er i en ikke-inaktiv tilstand. Selvom CPU-brug måles i procent, kan du se CPU-brugsværdier være større end en 100%. Dette betyder ikke, at CPU ‘ en er overbelastet. For eksempel vil du se CPU-brug større end 100% i multiprocessorsystemer. Værdien af CPU-brug for et system er summen af procentdelen af CPU-brug af individuelle CPU ‘ er. Så hvis du har to processorer, og en af dem har en CPU-brug på 60%, og den anden har en CPU-brug på 50%, ville den samlede CPU-brugsværdi være 110%.
Hvad forårsager høj CPU-brug?
at finde kernen i problemet hjælper dig med at implementere bedre løsninger til høj CPU-brug. Der kan være forskellige grunde til CPU-brug baseret på brugssager. Jeg opregner de mest almindelige årsager.
processer med højt CPU-krav
nogle programmer kræver høje CPU-ressourcer. Hvis du har et system med lav specifikation og prøver at køre et avanceret videospil, vil CPU-brugen naturligvis gå gennem taget. Tilsvarende kan der være forskellige processer, der kræver høje CPU-ressourcer for at arbejde. Sådanne processer eller en række processer, som som en subtotal udnytte høj CPU kan være en af årsagerne. På servere kører flere tjenester for at holde serveren kørende, simuleringer osv., kan forårsage høj CPU-brug.
baggrundsprocesser
processer kan primært opdeles i 2 kategorier: systemprocesser og applikationsprocesser. Systemprocesser er de processer, der er nødvendige for at holde dit system kørende. Ansøgningsprocesser er de processer, du vil bruge til et bestemt formål. Når disse processer fortsætter med at køre i baggrunden, spiser de CPU-ressourcer.
mange applikationsprocesser fortsætter med at køre i baggrunden, selv efter at du har lukket applikationsvinduet. Dette er mindre sandsynligt, at det sker på en server, fordi en server normalt vedligeholdes og rengøres med jævne mellemrum for kun at have de processer, den har brug for, men det er stadig muligt.
ondsindede programmer
ondsindede programmer er programmer, der bruges af ondsindede aktører til at angribe dit system eller udføre ulovlige handlinger på dit system. I første omgang bruger de ikke høje CPU-ressourcer til at forblive skjult, men når de begynder at udføre ondsindede handlinger, forårsager de høj CPU-brug. Jeg var vidne til denne hændelse, hvor ondsindet program var blevet induceret i en server en uge før, og en dag det begyndte at overføre alle følsomme data fra serveren til cloud storage. Så denne ondsindede program brugte ikke meget CPU-ressourcer, mens den opsatte ting og fandt kritiske data. Men når den først fandt alt, hvad den havde brug for, var der en enorm stigning i CPU-brug på grund af dataoverførsel.
ikke-optimeret kode
det er almindeligt at have brugerdefineret kode, der kører på servere til specifikke opgaver. Hvis sådanne koder ikke er optimeret, kan de ende med at bruge mange CPU-ressourcer. Uoptimerede sløjfer og rekursion er nogle af de mest almindelige årsager til høj CPU-brug på grund af uoptimeret kode.
almindelige rettelser til høj CPU-brug
baseret på de tidligere adresserede almindelige årsager, lad os se på nogle af de almindelige rettelser til høj CPU-brug.
genstart
en systemstart er en løsning til de fleste computerproblemer. Hvordan ville det hjælpe med at reducere CPU-brugen? En genstart ville lukke alle baggrundsprocesser, der muligvis er startet på grund af en eller anden handling, men du har ikke længere brug for det. Det ville også afslutte
Afslut baggrundsprocesser
genstart af systemet er muligvis ikke muligt, især for servere. Så du bliver nødt til at håndtere unødvendige processer uden at genstarte systemet. For at gøre dette kan du liste alle de processer, der kører, identificere hvilke processer der er unødvendige og afslutte dem. Sådan ser det ud i vinduer task manager:
en anden løsning er at håndtere opstartsprocesser. Der er nogle processer, der er konfigureret til at starte, så snart dit system starter. Nogle af disse er nødvendige, og nogle er ikke. Du kan identificere sådanne processer og deaktivere dem fra autostart. I vinduer kan du finde dem under fanen “Opstart” i task manager:
Anti-Virus
virus er farligt. Ikke kun med hensyn til CPU-brug, men generelt også. Nogle skadelige programmer forårsager høj CPU-brug, og brugen af skadelige programmer kan være dit bedste forsvar mod sådanne skadelige programmer. Moderne anti-ondsindede programmer er smarte og avancerede. De kan ikke kun identificere skadelige programmer i dit system og slette eller karantæne dem, men de kan også forhindre skadelige programmer i at komme ind på dit system. Så ved at bruge anti-ondsindet program, vil du ikke kun fastsætte høj CPU-forbrug, men også forhindre høj CPU-forbrug på grund af ondsindet program.
Kodeoptimering
hvis du identificerer, at årsagen til høj CPU-brug skyldes uoptimeret kode, skal du optimere den. Du bliver nødt til at analysere koden og finde ud af, hvilken del af koden der bruger CPU-ressourcer og optimere den.
CPU-opgradering
hvis du har løst alle de andre problemer og optimeret alt og stadig ser høj CPU-brug, betyder det, at dit CPU-krav er højt. I sådanne tilfælde er der ingen anden mulighed end at opgradere dine CPU-ressourcer.
hvorfor skal du overvåge server CPU-brug?
en server kan have to typer job, der skal udføres på et højt niveau: et job fra brugeren og et job i systemet. Et job fra brugeren er, når en bruger har anmodet om en tjeneste eller data fra serveren. Lad os sige, at du går til YouTube og søger efter noget. YouTubes server skal hente alle de videoer, der er relevante for din søgning, og sende den som et svar på din anmodning. Denne transaktion af data Bruger CPU-tid.
en server har andre opgaver end blot at reagere på brugere. Det siger sig selv, at dens CPU bruges til at køre operativsystemet og internettjenester. Men bortset fra dette kan servere bruges til at køre nogle scripts til at behandle data. Et almindeligt eksempel er at køre Ansible playbooks. Disse playbooks kan udføre opgaver, selv uden at brugeren behøver at gribe ind.
håndtering af ressourcer og opgaver
hvis dit CPU-forbrug er lavt, spilder du dine ressourcer. Og hvis din CPU-brug er meget høj, sænker systemet og kan begynde at ligge. Du ønsker ikke, at nogen af disse skal ske, hvorfor det er vigtigt at overvåge serverens CPU-brug. Overvågning server CPU-forbrug hjælper dig med at forstå, hvor meget din CPU bliver brugt. Dette vil hjælpe dig med at beslutte, om du kan få din CPU til at gøre flere job eller øge dine ressourcer for at imødekomme nødvendigheden.
optimering af programmer
overvågning af server CPU-brug har været meget fordelagtigt at styre ressourcer såvel som at optimere opgaver. Der har været tilfælde, hvor programmer tager mere tid, end de ideelt set burde tage. Når du ser, at CPU-brugen er højere, selv når du udfører et kort, simpelt program, ved du, at der er noget galt med dit program. Ofte er programmer ikke effektive på grund af dårlig programmeringspraksis. Overvågning af CPU-brug kan hjælpe dig med at finde sådanne tilfælde og optimere kode. Derfor er overvågning af CPU-brug som at ramme to fugle med en enkelt sten.
nu hvor vi er færdige med “hvad” og “hvorfor” af CPU-brug og lærte, hvor gavnlig overvågningsserver CPU-brug kan være, lad os komme til “hvordan” – delen.
sådan overvåges server CPU-brug
CPU-brug er ikke noget som penge, som du kan spare op over en periode og derefter bruge det, når du vil. Ubrugt CPU er en spildt ressource. Derfor ønsker alle, at serverens CPU-brug skal være tæt på 100%. Og for at holde det bedst, skal du muligvis foretage nogle justeringer og fortsætte med at opdatere systemet. For at vide, hvad du skal gøre, skal du kende den aktuelle status for server CPU-brug.
du kan kontrollere din server CPU-brug med en enkelt kommando. Hvis du har et operativsystem, skal du åbne din kommandoprompt og køre denne kommando:
wmic cpu get loadpercentage
du skal se CPU-brugsprocenten som vist på dette skærmbillede:
baseret på dine krav kan du spørge om CPU-brug med jævne mellemrum og gemme dataene et eller andet sted og derefter se på det senere. Eller du kan streame CPU-forbrug i et dashboard til at overvåge når som helst.
de fleste operativsystemer leveres med indbyggede værktøjer og værktøjer til overvågning af CPU-forbrug. Men disse værktøjer har begrænsninger, og de er normalt for grundlæggende. I den nuværende tidsalder har vi brug for avancerede kapaciteter til at håndtere og arbejde med overvågningsdata, og det kræver behovet for avancerede overvågningsværktøjer. Næsten alle tjenester er online nu. Og servere spiller en vigtig rolle i at gøre disse tjenester tilgængelige. Du har ikke råd til at vente et par timer for at vide, at din server er nede på grund af høj CPU-brug. Du er nødt til løbende at overvåge CPU-forbrug og andre server målinger.
Monitor kontinuerligt
kontrol af server CPU-brug på et tidspunkt er ikke til stor nytte. Du har brug for en løsning til løbende at overvåge serverens CPU-brug. Næsten hvert serveroperativsystem leveres med en ydelsesmonitor, hvor du kan se CPU-brugen til enhver tid. Når du overvåger server-CPU-brug, skal du kigge efter pigge, da pludselige ændringer i CPU-brug indikerede, at der er sket noget usædvanligt.
sammen med overvågning af CPU-brug i realtid vil du gemme disse data, så du kan visualisere og analysere dem med forskellige intervaller. For at få mest muligt ud af CPU-brugsstatistikker skal du indsamle CPU-brugsdata med jævne mellemrum (helst i realtid) ved at generere logfiler, og du skal visualisere dem i form af grafer. Vi har lige talt om en metrisk, men glem ikke, at server CPU-brug ikke er den eneste ting at overvåge. For at få alt hvad du behøver på et sted, Brug Scalyr.