Forskellige metoder til beregning af belastning
Før vi dykker ned i Linux-belastningsgennemsnit, skal vi undersøge de forskellige måder, hvorpå belastning beregnes og adressere den mest almindelige måling af CPU-belastning - en procentdel.
Windows beregner belastning forskelligt fra Linux, og da Windows har været historisk mere populær på skrivebordet, forstås Windows-definitionen af belastning generelt af de fleste computerbrugere. De fleste Windows-brugere har set systembelastningen i task manager vist som en procentdel fra 0% til 100%.
I Windows udledes dette ved at undersøge, hvor "optaget" System tomgangsproces er og bruger det inverse til at repræsentere systembelastningen. For eksempel, hvis ledig tråd udfører 99% af tiden, ville CPU-belastning i Windows være 1%. Denne værdi er let at forstå, men giver mindre overordnede detaljer om systemets sande status.
I Linux er belastningsgennemsnittet i stedet repræsenteret af et decimaltal, der starter ved 0.00. Værdien kan groft defineres som antallet af processer i løbet af det sidste minut, der måtte vente på deres tur til udførelse. I modsætning til Windows er Linux-belastningsgennemsnit ikke en øjeblikkelig måling. Belastning er angivet i tre værdier - gennemsnittet på et minut, det gennemsnit på fem minutter og det gennemsnit på femten minutter.
Forståelse af belastningsgennemsnit i Linux
Til at begynde med synes dette ekstra lag af detaljer unødvendigt, hvis du blot vil vide den aktuelle status for CPU-belastning i dit system. Men da gennemsnittet af tre tidsperioder er givet, snarere end en øjeblikkelig måling, kan du få en mere komplet idé om ændringen af systembelastningen over tid i et enkelt blik på tre tal
Visning af gennemsnitsbelastningen er enkel. På kommandolinjen kan du bruge en række forskellige kommandoer. Jeg bruger simpelthen kommandoen “w”:
root @ jomfru [~] # w21:08:43 op 38 dage, 4:34, 4 brugere, gennemsnitsbelastning: 3.11, 2.75, 2.70
Resten af kommandoen viser, hvem der er logget på, og hvad de udfører, men til vores formål er disse oplysninger irrelevante, så jeg har klippet dem fra ovenstående skærm.
I et ideelt system skal ingen proces holdes op af en anden proces (eller tråd), men i et enkelt processorsystem, dette sker, når belastningen går over 1.00.
Ordene ”single processor system” er utroligt vigtige her. Medmindre du kører en gammel computer, har din maskine sandsynligvis flere CPU-kerner. I den maskine, jeg er på, har jeg 16 kerner:
root @ jomfru [~] # nproc16
I dette tilfælde et belastningsgennemsnit på 3.11 er slet ikke alarmerende. Det betyder simpelthen, at lidt mere end tre processer var klar til at udføres, og CPU-kerner var til stede for at håndtere deres udførelse. På dette særlige system skal belastningen nå op på 16 for at blive betragtet som "100%".
For at oversætte dette til en procentbaseret systembelastning kan du bruge denne enkle, hvis ikke stumpe kommando:
kat / proc / loadavg | klip -c 1-4 | ekko "skala = 2; ($ (Denne kommandosekvenser isolerer gennemsnittet på 1 minut via cut og ekkoer det divideret med antallet af CPU-kerner gennem bc, en kommandolinielommeregner for at udlede procentdelen.Denne værdi er på ingen måde videnskabelig, men giver en grov tilnærmelse af CPU-belastning i procent.
Et minut at lære, en levetid at mestre
I det foregående afsnit anførte jeg “100%” eksemplet på en belastning på 16.0 på et 16 CPU-kernesystem i anførselstegn, fordi beregningen af belastning i Linux er lidt mere tåget end Windows. Systemadministratoren skal huske på, at:
- Belastning udtrykkes i venteprocesser og tråde
- Det er ikke en øjeblikkelig værdi, snarere et gennemsnit og
- Dens fortolkning skal omfatte antallet af CPU-kerner og
- Kan over-oppumpe I / O venter som disk læser
På grund af dette er det ikke helt empirisk at få fat i CPU-belastning på et Linux-system. Selvom det var, er CPU-belastning alene ikke en tilstrækkelig måling af den samlede systemressourceudnyttelse. Som sådan vil en erfaren Linux-administrator overveje CPU-belastning sammen med andre værdier såsom I / O-ventetid og procentdelen af kerne versus systemtid.
I / O Vent
I / O vent kan ses nemmest via kommandoen “top”:
I skærmbilledet ovenfor har jeg fremhævet I / O-venteværdien. Dette er en procentdel af tid, som CPU'en ventede på, at input- eller outputkommandoer var færdige. Dette er normalt et tegn på høj diskaktivitet. Mens en høj venteprocent alene ikke muligvis nedbryder CPU-bundne opgaver, reducerer det I / O-ydeevne for andre opgaver og får systemet til at føle sig træg.
Høj I / O-ventetid uden nogen åbenbar årsag kan indikere et problem med en disk. Brug kommandoen “dmesg” til at se, om der er opstået fejl.
Kerne vs. Systemtid
Ovenstående fremhævede værdier repræsenterer bruger- og kernetiden (system). Dette er en opdeling af brugernes samlede forbrug af CPU-tid (i.e. applikationer osv.) og kernen (i.e. interaktion med systemenheder). Højere brugertid angiver mere CPU-forbrug af programmer, hvor højere kernetid angiver mere behandling på systemniveau.
En ret gennemsnitlig belastning
At lære forholdet mellem belastningsgennemsnit og den faktiske systemydelse tager tid, men inden længe vil du se en tydelig sammenhæng. Bevæbnet med indviklingen i systemets ydeevnemålinger, vil du være i stand til at træffe bedre beslutninger om hardwareopgraderinger og programressourceudnyttelse.