Processoren viser hundrede procent: spørgsmålet før du læser et tal
Tre forskellige tal bærer samme navn: gennemsnittet siden opstart, den opsamlede sum og forskellen mellem to aflæsninger. Kun det sidste besvarer "lige nu".
AtlasPVE ·
Denne artikel besvarer
- proxmox høj cpu-brug
- proxmox hvilken proces bruger cpu
- hvad er load average
- læse uddata fra top
- proxmox cpu på 100 procent
Du kigger på panelet, og processoren virker hårdt belastet. Før du gør noget, findes der ét eneste spørgsmål: hvilken periode beskriver dette tal?
For tre forskellige tal bærer samme navn, og de tre siger forskellige ting.
Tre tal med samme navn
Gennemsnittet siden opstart. Var maskinen travl i tre dage for to måneder siden, sidder den travlhed stadig i dette gennemsnit. Det besvarer ikke "lige nu".
Den opsamlede sum. Den falder aldrig. Den fortæller om fortiden, ikke om i dag.
Forskellen mellem to aflæsninger. Der tages to målinger, og ændringen mellem dem læses. Kun denne besvarer "lige nu".
Den klassiske fælde
Standardværktøjet, der lister processer, viser på sin første skærm gennemsnittet siden opstart. Kigger du på den første skærm og handler, har du grebet ind i fortiden og ikke i i dag.
Den rigtige vej er at tage mindst to aflæsninger og læse den anden. Værktøjet i sig selv tager ikke fejl; måden, det læses på, gør.
Den samme fejl tager samme form alle steder
Den form har vi allerede set to gange i denne wiki.
Om diskslid sagde vi ikke procenten, men hældningen: femogfirs procent tilbage betyder ti år på én disk og otte måneder på en anden.
Om tabte pakker sagde vi ikke summen, men raten: en maskine, der havde én dårlig time sidste år, bliver af tælleren vist som skyldig på livstid.
For processoren gælder ikke gennemsnittet, men forskellen. Tre forskellige steder, én læsefejl.
Det kan skrives som en almen regel: et tal uden angivet tidsvindue er ingen måling. Spørg, før du handler på et tal, hvilket vindue det dækker.
Når processoren virkelig er hårdt belastet
Så kræves der en anden skelnen: er det én maskine, der er travl, eller er det serveren, der ikke slår til?
At en virtuel maskine bruger hele den andel, den har fået, er normalt. Gav du den to kerner, og har den fyldt de to kerner, virker systemet præcis som tænkt.
Problemet er det øjeblik, hvor serveren mættes: gæsterne holder op med at få, hvad de beder om, og alle bliver langsommere på samme tid.
Og noget forveksles ofte: belastning er ikke processorbrug. Belastning tæller ting, der venter, og nogle af dem venter ikke på processoren, men på disken. Det er muligt, at belastningen er høj, mens processoren står stille, og det siger dig, at du skal kigge et andet sted.
Hvad Atlas gør
Når Atlas lister serverens mest processorsultne processer, tager det bevidst to aflæsninger og læser den anden.
Grunden er netop fælden ovenfor: den første aflæsning bærer gennemsnittet siden opstart, og at vise den ville vildlede. Forskellen er ingen bagatel; en liste sorteret på den første aflæsning fremstiller en proces, der var travl for måneder siden, som dagens skyldige.
Endnu en lille, men ærlig detalje: resultatet af målingen gemmes kort, og forespørgsler, der kommer samtidig, knyttes til én enkelt måling. Grunden: mens kortet er åbent, opdateres det med få sekunders mellemrum, og at starte en ny måling ved hver opdatering belaster serveren unødigt.
Det er det samme princip som i artiklen om varme: det, der iagttager, bør ikke være det, der koster.
Kilder
Proxmox’ egen dokumentation. På engelsk, og den har det sidste ord i dette spørgsmål.