Når du utfører administrasjonsoppgaver i Linux -miljøer, er det ideelt og tilrådelig å ha verktøy og verktøy som lar oss ha en mye mer presis kontroll over dataene som skal analyseres, siden vi på denne måten forenkler og bestiller oppgaven vår, slik at vi kan få mye mer eksakte resultater.
Et av disse verktøyene er iostat, og i dag i Solvetic vil vi analysere hvordan vi kan gjøre bruk av det for å få direkte, klare og helt pålitelige rapporter om elementene som vi administrerer i organisasjonen vår uavhengig av fordelingen som brukes, i dette tilfellet vil vi bruke Ubuntu 17.10 Server.
Hva er iostatIostat (input / output statistics - input / output statistics) er et verktøy der det vil være mulig å skaffe informasjon om input- og output -komponenter i systemet, noe som gir administratoren eller brukeren muligheten til å identifisere ytelsesproblemer på både den lokale disken og eksterne disker. eller generell informasjon om operativsystemet.
Ved å bruke denne kommandoen kan den brukes til å kontrollere belastningen på systemets input / output -enhet ved å observere tiden disse enhetene er aktive i forhold til deres gjennomsnittlige overføringshastigheter i systemet.
Når vi bruker iostat, vil det være mulig å generere rapporter som kan brukes til å endre systemkonfigurasjonen og balansere på en mye mer effektiv måte input og / eller output load mellom de fysiske diskene.
Den første rapporten generert av iostat -kommandoen gir oss statistikk over den generelle tiden siden systemoppstartsprosessen begynte, og dermed dekker hver påfølgende rapport tiden som har gått siden forrige rapport; All statistikk vil bli rapportert hver gang vi kjører iostat -kommandoen.
Denne rapporten består av en CPU -topptekst etterfulgt av en CPU -statistikkrad, og hvis vi har flerprosessorsystemer, blir CPU -statistikken beregnet i hele systemet som gjennomsnitt blant alle eksisterende prosessorer og deretter en rad med enhetsoverskrifter etterfulgt av en statistikklinje for hver konfigurerte enhet.
1. Installer iostat på Ubuntu 17.10
Som standard i denne distribusjonen er iostat inkludert i Ubuntu sysstat -pakken, og vi kan installere den ganske enkelt ved å utføre følgende kommando:
sudo apt install sysstat -y
FORSTØRRE
2. Bruk iostat i Ubuntu 17.10
Trinn 1
Den første kommandoen vi kan kjøre er iostat som vil vise informasjon om CPU -bruken og I / O -statistikken til Ubuntu 17.10:
FORSTØRRE
Steg 2
Der vil vi se detaljer som:
- På første linje versjonen av Linux -kjernen og vertsnavnet.
- I de neste to linjene vil vi se CPU -statistikk, for eksempel gjennomsnittlig CPU -bruk, prosentandelen av tid CPU -en var inaktiv og I / O -responsen, prosentandelen av den virtuelle CPU -timeouten og prosent -tiden CPU -en er inaktiv i system.
- I de to siste linjene vil vi kunne se rapporten om bruken av enheten, for eksempel antall lese- og skriveblokker per sekund og totalt antall blokker og skrivelesninger per sekund som har blitt utført på enheten.
Trinn 3
Som standard genererer iostat -kommandoen rapporten med gjeldende dato. Derfor, hvis vi vil vise gjeldende tid, vil det være nødvendig å bruke følgende kommando:
iostat -t
FORSTØRRE
Trinn 4
For øyeblikket vil vi bekrefte versjonen av iostat, bare kjør følgende:
iostat -V
FORSTØRRE
Trinn 5
Det er verdt å nevne at for å se alle alternativene, som vi vil indikere senere, kan vi bruke følgende linje:
iostat -hjelp
FORSTØRRE
3. Bruk avansert iostat -modus i Ubuntu 17.10
I noen tilfeller kan vi gjøre bruk av noen mer avanserte parametere avhengig av hvilken type forespørsel som blir forespurt. Noen av disse alternativene er følgende.
Trinn 1
Hvis vi bare vil se rapporten om en enhet én gang, vil vi utføre følgende kommando:
iostat -d
FORSTØRRE
Steg 2
For å se rapporten om denne enheten kontinuerlig hvert 7. sekund, vil vi utføre følgende linje fire ganger på rad:
iostat -d 7 4
FORSTØRRE
Trinn 3
Hvis vi vil se statistikken over spesifikke enheter, bruker vi følgende kommando:
iostat -p sda
FORSTØRRE
Trinn 4
Vi kan se statistikken over forskjellige enheter samtidig ved å utføre følgende:
iostat -p sda, sdb, sdcTrinn 5
For å få I / O -statistikken for enheten i MB / sekund, vil vi utføre følgende kommando:
iostat -m
FORSTØRRE
Trinn 6
For å få spesifikk informasjon om en utvidet partisjon må vi bruke følgende kommando:
iostat -x "partisjon"
FORSTØRRE
Trinn 7
For å vise CPU -bruksstatistikken vil kommandoen som skal brukes være følgende:
iostat -c
FORSTØRRE
4. Iostat rapporterer i Ubuntu 17.10
Nå kan vi se at hvert av alternativene å bruke er praktisk, men hver linje inneholder en viss verdi som vi ved første øyekast ikke vil være i stand til å forstå veldig godt, det er derfor Solvetic vil forklare hva hver av disse verdiene betyr for å forstå enda bedre resultatene som genereres av iostat, forstå at iostat -kommandoen genererer tre typer rapporter som er:
- CPU -bruksrapporten
- Enhetsbruksrapporten
- Rapporten for nettverksfilsystemet
Trinn 1
Nå er verdiene som følger. I den første rapporten generert av iostat -kommandoen har vi detaljer om CPU -bruk. For flerprosessorsystemer er CPU -verdier globale gjennomsnitt for alle aktive prosessorer. Rapporten har følgende format:
% brukerViser prosentandelen av CPU -bruk som oppstod under kjøring på brukernivå (applikasjon).
% hyggeligGjenspeiler prosentandelen av CPU -bruk som oppstod ved kjøring på brukernivået med høy prioritet.
% systemViser prosentandelen av CPU -bruken som oppstod under kjøring på systemnivå (kjerne).
% iowaitViser prosentandelen av tiden CPU eller CPUer var inaktive da systemet hadde en ventende disk -I / O -forespørsel.
% stjeleViser prosentandelen av tiden som utilsiktet venter på den eller de virtuelle CPU -ene mens hypervisoren betjente en annen virtuell prosessor.
% tomgangViser prosentandelen tid som CPU (er) var inaktive og systemet ikke hadde en ventende disk -I / O -forespørsel.
Steg 2
Den andre rapporten generert av iostat -kommandoen er Device Utilization Report i denne enhetsrapportstatistikken leveres av fysisk enhet eller partisjon. Rapporten kan vise følgende felt, avhengig av indikatorene som brukes:
EnhetDenne kolonnen gir enhetsnavnet (eller partisjonen), vist som hdiskn for 2.2 -kjerner, for den niende enheten. Det vises som devm -n med 2,4 kjerner, hvor m er hovedenhetens nummer og n er et særegen tall. Med nyere kjerner vil enhetsnavnet vises som vist i / dev -katalogen.
tpsAngir antall overføringer per sekund som kom inn i enheten. En overføring er en I / O -forespørsel til enheten, denne kan kombineres med flere logiske forespørsler til en enkelt I / O -forespørsel til enheten. En overføring er av ubestemt størrelse.
Blk_read / sRefererer til mengden data som er lest fra enheten uttrykt i et antall blokker per sekund. Blokkene tilsvarer sektorer med kjerner 2.4 og nyere, og er derfor 512 byte store. Med eldre kjerner har en blokk en ubestemt størrelse.
Blk_wrtn / sAngir mengden data skrevet til enheten uttrykt i flere blokker per sekund.
Blk_readDet er det totale antall blokker som er lest.
Blk_wrtnDet er det totale antallet skrevne blokker.
kB_read / sAngir mengden data som er lest fra enheten uttrykt i kilobyte per sekund.
kB_wrtn / sAngir mengden data skrevet til enheten uttrykt i kilobyte per sekund.
kB_readDet er det totale antall kilobytes som er lest.
kB_wrtnDet er det totale antallet kilobytes skrevet.
MB_les / sRefererer til mengden data som er lest fra enheten uttrykt i megabyte per sekund.
MB_wrtn / sRefererer til mengden data skrevet fra enheten uttrykt i megabyte per sekund.
MB_lesDet er det totale antallet megabyte som er lest.
MB_wrtnDet er det totale antallet megabyte som er skrevet.
rrqm / sDette er antallet sammenslåtte leseforespørsler per sekund som ble satt i kø til enheten.
wrqm / sDette er antallet sammenslåtte skriveforespørsler per sekund som ble satt i kø til enheten.
r / sDet er antall leseforespørsler som ble sendt til enheten per sekund.
m / sDet er antall skriveforespørsler som ble sendt til enheten per sekund.
rsek / sDe er antall sektorer som leses fra enheten per sekund.
wsec / sDe er antall skrevne sektorer på enheten per sekund.
rkB / sDe er antall kilobyte som leses fra enheten per sekund.
wkB / sDe er antall kilobyte skrevet til enheten per sekund.
rMB / sDe er antall megabyte som leses fra enheten per sekund.
wMB / sDe er antall megabyte skrevet til enheten per sekund.
avgrq-szDet er gjennomsnittlig størrelse (i sektorer) på forespørslene som ble sendt til enheten.
avgqu-szDet er den gjennomsnittlige varigheten av køen til forespørslene som ble sendt til enheten.
avventeDet er gjennomsnittlig tid (i millisekunder) for I / O -forespørslene som utstedes for enheten som skal serveres i systemet.
svctmDet er gjennomsnittlig servicetid (i millisekunder) for I / O -forespørslene som ble sendt til enheten.
%NyttigAngir prosentandelen CPU -tid som I / O -forespørsler ble sendt til enheten (bruk av båndbredde for enheten). Enhetsmetning oppstår når denne verdien er nær 100%.
Trinn 3
Den tredje iostat -rapporten er Network File System (NFS) -rapporten som gir statistikk for hvert nettverksfilsystem som er montert på systemet. Rapporten viser følgende felt:
FilsystemDenne kolonnen viser vertsnavnet til NFS -serveren etterfulgt av et kolon og navnet på katalogen der nettverksfilsystemet er montert.
rBlk_nor / sAngir antall blokker som leses av applikasjoner gjennom lesesystemets samtalegrensesnitt, en blokk har en størrelse på 512 byte.
wBlk_nor / sAngir antall blokker skrevet av applikasjoner gjennom samtalegrensesnittet til skrivesystemet.
rBlk_dir / sRefererer til antall blokker som er lest fra åpne filer med O_DIRECT -flagget.
wBlk_dir / sAngir antall blokker skrevet i åpne filer med O_DIRECT -flagget.
rBlk_svr / sRefererer til antall blokker som er lest fra serveren av NFS -klienten gjennom en NFS -leseforespørsel.
wBlk_svr / sAngir antall blokker skrevet til serveren av NFS -klienten gjennom en NFS WRITE -forespørsel.
ops / sAngir antall operasjoner som ble utstedt til filsystemet per sekund.
rops / sAngir antall "lese" operasjoner som ble utstedt til filsystemet per sekund.
wops / sRefererer til antall "skrive" operasjoner som ble utstedt til filsystemet per sekund.
5. Generelle iostat -parametere i Ubuntu 17.10
Parametrene vi kan bruke med iostat er:
-cGenerer CPU -bruksrapporten.
-dGenerer enhetsbruksrapporten.
-hLa NFS -rapporten vises etter eget valg - det er lettere for et menneske å lese.
-kViser statistikk i kilobyte per sekund i stedet for blokker per sekund. Dataene som vises er kun gyldige med kjerner 2.4 og nyere.
-mDen genererer statistikk i megabyte per sekund i stedet for blokker eller kilobyte per sekund. Dataene som vises er kun gyldige med kjerner 2.4 og nyere.
-nViser Network File System (NFS) -rapporten. Dette alternativet fungerer bare med kjernen 2.6.17 og nyere versjoner.
-s[{enhet [, …] | ALL}]: -p -alternativet viser statistikken til blokkenhetene og alle partisjonene deres som brukes av systemet. Hvis vi legger til et enhetsnavn på kommandolinjen, vises statistikken og alle dens partisjoner. Til slutt indikerer ALLE søkeordet at statistikk bør vises for alle systemdefinerte blokkpartisjoner og enheter.
-tSkriver ut tiden for hver rapport som genereres. Tidsstempelformatet kan avhenge av verdien til miljøvariabelen S_TIME_FORMAT.
-VSkriv ut versjonen av iostat som brukes.
-xVis utvidet statistikk.
-zInstruerer iostat om å hoppe over utdataene til en enhet som det ikke er aktivitet for i løpet av den valgte prøveperioden.
Som vi kan se, er iostat mer enn et enkelt systemverktøy, vi må få mest mulig ut av det og dermed administrere operativsystemene våre på en mye mer komplett måte.