Indføre runqstat – Nye Linux Køre Kø & Load Average Værktøj

Få reelle CPU-Belastning-Gennemsnit på Linux

Linux Belastning Gennemsnit er lige så gammel som bakkerne, og om så forvirrende, så få ingeniører kan endda fortælle dig, hvad det virkelig er, eller hvordan det er beregnet.,
Heldigvis, Brendon Gregg har en stor oversigt herunder dens historie, på Linux Belastning-Gennemsnit: at Løse Mysteriet, hvor du kan se det centrale problem:

Linux Belastning Gennemsnit indeholder i/O –

Det er så enkel som at. I modsætning til alle andre UNI.-lignende systemer (Solaris, ai. osv.), Linu.tæller både kørende/runnable processer og blokerede (uninterruptible) processer, som normalt venter på I/O. Dette er en dårlig ting, og går til en arkaisk 24 år gammel patch, som Brendon fandt.

hvorfor er vi ligeglade?,

Vi er interesserede, fordi det resulterende Belastningsgennemsnit på ethvert system med blandet brug (ved hjælp af både CPU og I / O) er meget variabelt og ofte ubrugeligt. Dette kan være særligt dårligt med stærkt gevindskårne systemer, der kan forårsage I/O, så det er nemt at have snesevis eller hundredvis af dem blokeret på langsomme diske.

hvad de fleste af os virkelig ønsker, er det traditionelle Uni. – mål for Belastningsgennemsnit, hvilket er det gennemsnitlige antal kørbare processer i gennemsnit over tid. Dette fortæller os, hvor indlæst vores system er, og vi kan se på køen som et mål for mætning, dvs., en kontinuerlig CPU-kø betyder, at vi er overbelastede.

så hvordan kan vi få det?

Vi vil virkelig have CPU-Kørekølængden, som bliver > 0, når processer skal vente på CPU ‘ en. Men det er svært at få præcist, og Linu. – kernen er ikke særlig venlig på dette område.

først, hvad Linu. – folk kalder kørekøen inkluderer løbende opgaver, så det er ikke rigtig køen, men køen plus hvad der kører. Det er forvirrende, og dermed skal du trække antallet af CPU ‘ er for at få en fornemmelse af den rigtige kø.,flere værktøjer kan få den aktuelle øjeblikkelige kørekøstørrelse. Dette er, hvad vmstat” r “- kolonnen og” sar -. “viser; begge får dette fra /proc/stat’ s procs_running metrisk.

problemet er, at dette er et øjeblikkeligt antal, så det er meget støjende og skal gennemsnitligt for at få nyttige data, men kernen gør det ikke for dig. Ideelt set ville der være en kernel output i /proc for CPU kun og I / O kun belastning gennemsnit, men ingen har skabt dette endnu.,

så vi har brug for et værktøj, der forsøger at efterligne, hvordan Load Average fungerer, ved hurtigt at prøve denne øjeblikkelige kørekøstørrelse og gennemsnit Dette over tid.

Indføre runqstat

runqstat gør dette — det er en simpel kommando linje værktøj skrevet i Går, at der som standard prøver denne kø størrelse hver 10 ms og dette gennemsnit over et sekund. Målet er en stabil og præcis måling af, hvor travlt systemet er.,
det indeholder muligheder for at ændre samplingfrekvensen og gennemsnitstiden plus at trække antallet af CPU ‘ er, så du bare kan se den faktiske køstørrelse, hvis du vil.

det har også en mulighed for at beregne det gennemsnitlige blokerede antal, som i teorien kan du trække fra Belastningsgennemsnittet for at få en anden visning af CPU-mætningen (og for at se, hvor meget besværsbelastningsgennemsnit forårsager dig).

Med dette værktøj, ops teams endelig har en god måde at overvåge deres Linu. – servere mætning.

Find det på Github — run Findstat

Share

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *