Belastningsovervågning er en af ​​de mest kritiske opgaver, især hvis du har problemer med servere. Det giver dig ikke kun en ide om, hvordan systemets ressourcer udnyttes, men hjælper dig også med at diagnosticere præstationsrelaterede problemer. I denne artikel vil vi diskutere, hvordan du udfører belastningsovervågning i Linux ved hjælp af atopværktøjet.

Bemærk : Alle eksempler i artiklen testes på Ubuntu 14.04.

På toppen

Som på sin man side er kommandolinjeværktøjet atop en interaktiv monitor for at se belastningen på et Linux-system. Det viser, hvordan systemets hardwareressourcer, herunder cpu, hukommelse, disk og netværk, er optaget, alt fra et præstationssynspunkt. Ikke kun dette, men det viser også hvilke processer der er ansvarlige for den angivne belastning.

Bemærk : Diskbelastningen vises, hvis der pr. Proces "opbevaringsregnskab" er aktiv i kernen, eller hvis kernekortet "cnt" er installeret. På samme måde vises netværksbelastningen kun pr. Proces, hvis kerneplastret "cnt" er installeret.

Download og installer

Brugere af Debian-baserede systemer (som Mint og Ubuntu) kan downloade og installere værktøjet ved hjælp af følgende kommando:

 sudo apt-get install ovenpå 

Dem, der er på andre Linux-distributioner, kan bruge deres respektive pakkehåndteringsværktøjer. For eksempel, yum i tilfælde af Red Hat. Du kan også downloade værktøjet fra dets officielle hjemmeside.

Atop output

Når du er installeret, kan du udføre værktøjet ved at udføre følgende kommando fra kommandolinjen:

 sudo ovenpå 

Her er stikprøveudgangen:

Som du kan se, er der meget information, der er bredt opdelt i to dele: Systemniveau og Procesniveau. Den førstnævnte består af følgende udgangslinjer:

PRC : Denne linje indeholder den samlede CPU-tid, der forbruges i systemmodus ('sys') og i brugertilstand ('bruger'), det samlede antal processer, der er til stede i øjeblikket ('#proc'), viser det samlede antal tråde i øjeblikket i tilstanden 'running' ('#trun'), 'sleep interruptible' ('#tslpi') og 'sleeping un-interruptible' ('#tslpu'), antallet af zombieprocesser ('#zombie'), antallet af klonsystemer ('kloner') og antallet af processer, der sluttede i intervallet ('#exit', som viser '?' hvis procesregnskab ikke anvendes).

CPU : Denne linje indeholder procentdelen af ​​CPU-tid brugt i kernel-tilstand ved alle aktive processer ('sys') i brugertilstand ('bruger') for alle aktive processer (herunder processer med en god værdi større end nul) interrupt handling ('irq') inklusive sofirq samt procentdelen af ​​ubrugt CPU-tid, mens ingen processer ventede på disk-I / O ('tomgang') og mens mindst en proces ventede på disk-I / O 'vente'). I tilfælde af et multiprocessorsystem vises en ekstra linje for hver enkelt processor (med 'cpu' i små bogstaver), sorteret efter aktivitet.

CPL : Denne linje indeholder CPU-belastningsoplysninger - antallet af tråde, der er tilgængelige for at køre på en CPU (dvs. en del af runqueue) eller som venter på disk I / O, antallet af kontekstomskiftere ('csw'), antal servicerede afbrydelser ('intr') og antallet af tilgængelige CPU'er.

MEM : Denne linje indeholder oplysninger om hukommelsesforbrug - den samlede mængde fysisk hukommelse ('tot'), mængden af ​​hukommelse, der for øjeblikket er ledig ('fri'), mængden af ​​hukommelse, der bruges som sidecache ('cache' ), mængden af ​​hukommelse inden for sidecachen, der skal skylles til disken ('beskidt'), mængden af ​​hukommelse, der anvendes til filsystemmeta-data ('buff') og mængden af ​​hukommelse der anvendes til kernel malloc's ').

SWP : Denne linje indeholder det samlede antal swap space på disken ('tot') og mængden af ​​gratis swaprum ('free'), det forpligtede virtuelle hukommelsesrum ('vmcom') og den maksimale grænse for det forpligtede rum ( 'vmlim')

DSK : Denne linje indeholder oplysninger om diskudnyttelse - den del af tid, hvor enheden havde travlt med at håndtere anmodninger ('travlt'), antallet af afgivne læsebeviser ('read'), antallet af udskrivningsforespørgsler udstedt ), antallet af KiBytes pr. læsning ('KiB / r'), antallet af KiBytes pr skriv ('KiB / w'), antallet af MiBytes pr. sekund gennemløb for læsning ('MBr / s'), antallet af MiBytes pr. Sekund gennemstrømning til skrivning ('MBw / s'), gennemsnittet kødybde ('avq') og det gennemsnitlige antal millisekunder, der kræves af en anmodning ('avio') for søgen, latens og dataoverførsel.

NET : Dette er oplysningerne relateret til Netværksudnyttelse (TCP / IP). En linje vises for transportlagets aktivitet (TCP og UDP), en linje for IP-laget og en linje pr. Aktiv grænseflade.

Systemniveauoplysningerne efterfølges af procesniveauoplysninger, som som navnet antyder detaljer information relateret til de processer, hvorfra ressourceudnyttelsen er ændret i løbet af det sidste interval (et standardinterval er 10 sekunder).

Et vigtigt punkt værd at nævne er, at der bruges farver (rød, cyan og mere) til at angive kritik af ressourceforbruget på systemniveau. For eksempel, når en ressource overskred den kritiske besættelsesprocent, er hele skærmens linje farvet RØD.

Bemærk : Gå gennem kommandos man side for flere detaljer om kommandoen.

Interaktive kommandoer

Du kan styre udgangen af ​​kommandoen atop fra dit tastatur. For eksempel, tryk på m at vise hukommelsesrelateret udgang, d for diskrelateret udgang, n for netværksrelateret udgang, v for forskellige procesegenskaber, c for proceslinjen i processen osv.

Her er skærmbilledet af procesniveauoplysninger produceret af atop kommandoen, når c blev trykket:

Så som du kan se, vises proceslinjen i processen i udgangen.

Konklusion

Atop er en meget nyttig belastningsovervågningskommando i Linux, der ikke kun giver en spandlast af information om systemressourcer, men også forskellige måder at tilpasse og styre dens output. Du anbefales at gå gennem kommandos man side for at lære mere om det.