Systemstatistik med sar og / proc filsystemet

I min seneste artikel 4 open source værktøjer til Linux system overvågningJeg diskuterede interaktive værktøjer, som kan være nyttige til løsning af systemproblemer. Jeg nævnte også sar kommando og hvordan det adskiller sig fra interaktive kommandoer. Det sar kommando er en af ​​mine favoritter, når det kommer til at løse problemer. Det er især nyttigt for de problemer, der synes at manifestere sig, mens man ikke ser.

Og for når du virkelig ønsker at komme ned til de rå data, har / proc filsystemet alt hvad du behøver.

Brug af SAR

SAR står for System Activity Reporter. Dens primære funktion er at indsamle systemydelsesdata for hver dag og gemme det i logfiler til senere visning. Data indsamles som gennemsnittet af 10-minut, men mere granulær samling kan også konfigureres. Data opbevares i en måned.

Installation og konfiguration

SAR er installeret som en del af sysstatpakken i Red Hat-baserede distributioner. (Tjek dine distributionssider for installationsdetaljer.)

dnf -y installer sysstat

Efter installation af sar som en del af sysstatpakken skal der normalt ikke gøres noget for at ændre sin konfiguration. Data indsamles på hvert 10-minuts mærke for hver time. Bemærk at udgangen af ​​kommandoen sar kan være meget bred for bred til brug i denne artikel. Hvis du lige har installeret sysstat-pakken, skal du derfor vente 30 minutter eller så for at indsamle data, der kan bruges i resten af ​​denne artikel. Men hvis du vil ændre tidspunktet for dataindsamling, skal du konfigurere konfigurationsfilerne cron eller systemd.

Op gennem Fedora 20 blev sar dataindsamling og daglig summarisk behandling styret af sysstat cron job i /etc/cron.d. Fra og med Fedora 2X bruger sar ikke længere cron-job til at styre sin samling og daglige opsummeringsaktiviteter, og systemd har overtaget disse opgaver. Tjek i / usr / lib / systemd / system-mappen for systat-tjenesten, resumé og saml filer, hvis du skal ændre noget. Filerne er små og selvforklarende.

Den eneste gang, jeg har lavet nogen ændringer i sar-konfigurationen, er, at jeg skulle samle data hvert minut i stedet for hvert 10-minut for at få et bedre håndtag på det tidspunkt, hvor et bestemt problem opstod. SAR-dataene gemmes i to filer om dagen i mappen / var / log / sa. Indsamling af data oftere end hvert 10-minut kan medføre, at disse filer vokser meget store.

På ét sted arbejdede jeg, vi havde et problem, der startede og eskalerede så hurtigt, at standardintervallet 10-minut ikke var nyttigt for at bestemme, hvad der skete først: CPU-belastning, højdiskaktivitet eller noget andet. Ved at bruge et 1-minutinterval fastslog vi, at CPU-aktivitet ikke kun var høj, men at det var forud for et kort interval af høj netværksaktivitet såvel som højdiskaktivitet. I sidste ende fastslog vi, at dette var et utilsigtet afslag på tjenesten (DOS) på webserveren, der var kompliceret af, at der var for lidt RAM installeret i computeren for at klare den midlertidige overbelastning. Tilføjelse af 2GB RAM til den eksisterende 2GB løst problemet, og yderligere DOS-angreb har ikke forårsaget problemer.

Undersøg indsamlede data

Udgangen fra kommandoen sar kan være detaljeret, eller du kan vælge at begrænse de viste data. Indtast f.eks sar kommando uden valgmuligheder, som kun viser aggregat CPU ydeevne data. Kommandoen sar bruger den aktuelle dag som standard, begyndende ved midnat, så du bør kun se CPU-dataene for i dag.

På den anden side bruger du sar -A Kommando viser alle de data, der er indsamlet til i dag. Gå ind i sar -A | mindre kommandoen nu og blad gennem output for at se de mange typer data, der indsamles af SAR, herunder disk- og netværksbrug, CPU-kontekstkontakter (hvor mange gange per sekund CPU'en skiftede fra et program til et andet), sideswaps, hukommelses- og bytteplads brug, og meget mere. Brug mandsiden til sar-kommandoen til at fortolke resultaterne og få en ide om de mange tilgængelige muligheder. Mange af disse muligheder giver dig mulighed for at se specifikke data, som f.eks. Netværkets og diskens ydeevne.

Jeg bruger typisk sar -A kommando, fordi mange af de tilgængelige typer data er indbyrdes forbundne, og nogle gange finder jeg noget, der giver mig et fingerpeg om et præstationsproblem i et afsnit af det output, som jeg måske ikke har set på ellers. Det -A indstillingen viser alle de indsamlede datatyper.

Se på hele produktionen af sar -A | mindre kommando for at få en fornemmelse for typen og mængden af ​​data, der vises. Sørg for at se på CPU-brugsdataene samt processerne startet pr. Sekund (proc / s) og kontekstomskifter pr. Sekund (cswch / s). Hvis antallet af kontekstomskiftere stiger hurtigt, kan det tyde på, at løbende processer bliver byttet fra CPU'en meget ofte.

Du kan begrænse den samlede mængde data til den samlede CPU-aktivitet med sar -u kommando. Prøv det og bemærk at du kun får de sammensatte CPU-data, ikke dataene til de enkelte CPU'er. Prøv også -r mulighed for hukommelse og -Stil bytteplads. Ved at kombinere disse indstillinger vil følgende kommando vise CPU, hukommelse, og bytteplads er også muligt:

sar -urS

Brug af -p valgmulighed viser bloknavnetavne for harddiske i stedet for de meget mere kryptiske enhedsidentifikatorer og -d viser kun blokenhederne - harddiske. Udsted følgende kommando for at få vist alle blokdataenheder i et læseligt format ved hjælp af navne som de findes i / dev-mappen:

sar -dp | mindre

Hvis du kun vil have data mellem bestemte tider, kan du bruge -s og -e at definere start- og sluttiderne. Følgende kommando viser alle CPU-data, både individuelle og aggregerede for tidsperioden mellem 7: 50 AM og 8: 11 AM i dag:

sar -P ALL-s 07: 50: 00 -e 08: 11: 00

Bemærk, at alle tider skal være i 24-timers format. Hvis du har flere CPU'er, er hver CPU detaljeret individuelt, og gennemsnittet for alle CPU'er er også givet.

Den næste kommando bruger -n mulighed for at vise netværksstatistikker for alle grænseflader:

sar-ALLE | mindre

Data for tidligere dage

Data indsamlet for tidligere dage kan også undersøges ved at angive den ønskede logfil. Antag, at dagens dato er September 3, og du vil se dataene for i går, viser følgende kommando alle indsamlede data for September 2. De sidste to cifre i hver fil er dagen i den måned, hvor dataene blev indsamlet:

sar -A -f / var / log / sa / sa02 | mindre

Du kan bruge kommandoen nedenfor, hvor DD er dagen i måneden for i går:

sar -Af / var / log / sa / saDD | mindre

Realtime data

Du kan også bruge SAR til at vise (næsten) realtidsdata. Følgende kommando viser hukommelsesbrugen i 5-sekunders intervaller til 10-iterationer:

sar -r 5 10

Dette er en interessant mulighed for sar, da den kan give en række datapunkter i en bestemt tidsperiode, der kan undersøges i detaljer og sammenlignes. / Proc-filsystemet Alle disse data for SAR og systemovervågningsværktøjerne, der er omfattet af min tidligere artikel, skal komme fra et eller andet sted. Heldigvis er alle kernedataene let tilgængelige i / proc-filsystemet. Faktisk, fordi de kernelpræstationsdata, der er gemt der, er alle i ASCII-tekstformat, kan det faktisk vises ved hjælp af simple kommandoer som hvordan så de enkelte programmer ikke behøver at indlæse deres egne kernemoduler for at indsamle det. Dette sparer systemressourcer og gør dataene mere præcise. SAR og de systemovervågningsværktøjer, jeg har diskuteret i min tidligere artikel, samler alle deres data fra / proc filsystemet.

Bemærk at / proc er et virtuelt filsystem og eksisterer kun i RAM, mens Linux kører. Det er ikke gemt på harddisken.

Selvom jeg ikke kommer ind i detaljer, indeholder / proc filsystemet også parametrene og variablerne for live kernel tuning. Således kan du ændre kernel tuning ved blot at ændre den relevante kernel tuning variabel i / proc; ingen genstart er påkrævet.

Skift til / proc-mappen og list filerne der. Du vil se, ud over datafilerne, en stor mængde nummererede mapper. Hver af disse mapper repræsenterer en proces, hvor katalognavnet er proces-id (PID). Du kan dykke ind i disse mapper for at finde oplysninger om individuelle processer, der kan være af interesse.

For at se disse data skal du blot katte nogle af følgende filer:

  • cmdline - Viser kernel kommandolinjen, herunder alle parametre, der er overført til den.
  • cpuinfo - Viser oplysninger om CPU'en (erne), herunder flag, modelnavnstastning og cache-størrelse.
  • meminfo - Viser meget detaljerede oplysninger om hukommelse, herunder data som aktiv og inaktiv hukommelse, og den samlede virtuelle hukommelse tildelt og den anvendte, der ikke altid vises af andre værktøjer.
  • iomem og ioports - lister de hukommelsesområder og porte, der er defineret for forskellige I / O-enheder.

Du vil se, at selv om dataene er tilgængelige i disse filer, er meget af det ikke annoteret på nogen måde. Det betyder at du vil have arbejde at gøre for at identificere og udvinde de ønskede data. De overvågningsværktøjer, der allerede er diskuteret, gør dog allerede det for de data, de er beregnet til at vise.

Der er så meget flere data i / proc-filsystemet, at den bedste måde at lære mere om det er at henvise til manussiden proc (5), som indeholder detaljerede oplysninger om de forskellige filer, der findes der.

Giv en kommentar

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.