Hoe iostat te installeren en te gebruiken op Ubuntu 17 Linux

Bij het uitvoeren van beheertaken in Linux-omgevingen is het ideaal en raadzaam om tools en hulpprogramma's te hebben waarmee we een veel nauwkeurigere controle hebben over de te analyseren gegevens, omdat we op deze manier onze taak vereenvoudigen en ordenen, waardoor we veel meer kunnen verkrijgen exacte resultaten.

Een van deze hulpprogramma's is iostat en vandaag zullen we in Solvetic analyseren hoe we er gebruik van kunnen maken om directe, duidelijke en volledig betrouwbare rapporten te verkrijgen van de elementen die we in onze organisatie beheren, ongeacht de gebruikte distributie, in dit geval zullen we gebruiken Ubuntu 17.10-server.

Wat is iostatIostat (input / output-statistieken - input / output-statistieken) is een hulpprogramma waarmee het mogelijk is om informatie te verkrijgen over invoer- en uitvoercomponenten van het systeem, waardoor de beheerder of gebruiker prestatieproblemen op zowel de lokale schijf kan identificeren en externe schijven of algemene informatie over het besturingssysteem.

Door dit commando te gebruiken, kan het worden gebruikt om de belasting van het invoer-/uitvoerapparaat van het systeem te regelen door de tijd te observeren dat deze apparaten actief zijn in verhouding tot hun gemiddelde overdrachtssnelheden binnen het systeem.

Wanneer we iostat gebruiken, is het mogelijk om rapporten te genereren die kunnen worden gebruikt om de systeemconfiguratie te wijzigen en op een veel efficiëntere manier de invoer- en / of uitvoerbelasting tussen de fysieke schijven te balanceren.

Het eerste rapport dat wordt gegenereerd door het iostat-commando geeft ons statistieken over de algemene tijd sinds het opstartproces van het systeem begon, dus elk volgend rapport dekt de tijd die is verstreken sinds het vorige rapport; Alle statistieken worden gerapporteerd elke keer dat we de iostat-opdracht uitvoeren.

Dit rapport bestaat uit een CPU-headerrij gevolgd door een CPU-statistiekenrij en, als we systemen met meerdere processors hebben, worden de CPU-statistieken door het hele systeem berekend als gemiddelden van alle bestaande processors en vervolgens een rij Device-headers gevolgd door een regel met statistieken voor elk geconfigureerd apparaat.

1. Installeer iostat op Ubuntu 17.10


Standaard is iostat in deze distributie opgenomen in het Ubuntu sysstat-pakket en we kunnen het eenvoudig installeren door de volgende opdracht uit te voeren:
 sudo apt install sysstat -y

VERGROTEN

2. Gebruik iostat in Ubuntu 17.10

Stap 1
De eerste opdracht die we kunnen uitvoeren is iostat die informatie over het CPU-gebruik en I / O-statistieken van Ubuntu 17.10 zal weergeven:

VERGROTEN

Stap 2
Daar zullen we details zien zoals:

  • In de eerste regel de versie van de Linux-kernel en de hostnaam.
  • In de volgende twee regels zullen we CPU-statistieken zien, zoals het gemiddelde CPU-gebruik, het percentage tijd dat de CPU inactief was en de I / O-respons, het percentage van de virtuele CPU-time-out en het percentage tijd dat de CPU inactief is binnen de systeem.
  • In de laatste twee regels zullen we het rapport van het gebruik van het apparaat kunnen zien, zoals het aantal lees- en schrijfblokken per seconde en het totale aantal blok- en schrijfbewerkingen per seconde dat op dat apparaat is uitgevoerd.

Stap 3
Standaard genereert de iostat-opdracht het rapport met de huidige datum, dus als we de huidige tijd willen weergeven, is het nodig om de volgende opdracht te gebruiken:

 iostat -t

VERGROTEN

Stap 4
Op dit moment willen we de versie van iostat verifiëren, voer gewoon het volgende uit:

 iostat -V

VERGROTEN

Stap 5
Het is vermeldenswaard dat we, om alle opties te zien, die we later zullen aangeven, de volgende regel kunnen gebruiken:

 iostat -help 

VERGROTEN

3. Gebruik de geavanceerde iostat-modus in Ubuntu 17.10


In sommige gevallen kunnen we gebruik maken van meer geavanceerde parameters, afhankelijk van het type verzoek dat wordt aangevraagd. Enkele van deze opties zijn de volgende.

Stap 1
Als we het rapport van een apparaat maar één keer willen zien, voeren we het volgende commando uit:

 iostat -d

VERGROTEN

Stap 2
Om het rapport van dit apparaat continu om de 7 seconden te zien, zullen we 4 keer achter elkaar de volgende regel uitvoeren:

 iostat -d 7 4

VERGROTEN

Stap 3
Als we de statistieken van specifieke apparaten willen zien, gebruiken we de volgende opdracht:

 iostat -p sda

VERGROTEN

Stap 4
We kunnen de statistieken van verschillende apparaten tegelijkertijd bekijken door het volgende uit te voeren:

 iostat -p sda, sdb, sdc
Stap 5
Om de I / O-statistieken van het apparaat in MB / seconde te verkrijgen, voeren we de volgende opdracht uit:
 iostat -m

VERGROTEN

Stap 6
Om de specifieke informatie van een uitgebreide partitie te verkrijgen, moeten we het volgende commando gebruiken:

 iostat -x "partitie"

VERGROTEN

Stap 7
Om de CPU-gebruiksstatistieken weer te geven, is de te gebruiken opdracht de volgende:

 iostat -c

VERGROTEN

4. Iostat-rapporten in Ubuntu 17.10


Nu kunnen we zien dat elk van de te gebruiken opties praktisch is, maar elke regel bevat een bepaalde waarde die we op het eerste gezicht niet zo goed kunnen begrijpen, daarom zal Solvetic uitleggen wat elk van deze waarden betekent om de resultaten die door iostat worden gegenereerd nog beter te begrijpen, begrijpt u dat het iostat-commando drie soorten rapporten genereert, namelijk:
  • Het CPU-gebruiksrapport
  • Het apparaatgebruiksrapport
  • Het netwerkbestandssysteemrapport

Stap 1
Nu zijn de waarden als volgt. In het eerste rapport dat is gegenereerd door de opdracht iostat, hebben we details over het CPU-gebruik. Voor systemen met meerdere processors zijn CPU-waarden globale gemiddelden over alle actieve processors. Het rapport heeft het volgende formaat:

% gebruikerGeeft het percentage van het CPU-gebruik weer dat heeft plaatsgevonden tijdens de uitvoering op gebruikersniveau (toepassingsniveau).

% leukGeeft het percentage CPU-gebruik weer dat is opgetreden bij het uitvoeren op de gebruikerslaag met hoge prioriteit.

% systeemGeeft het percentage van het CPU-gebruik weer dat plaatsvond tijdens de uitvoering op systeem- (kernel)niveau.

% iowaitGeeft het percentage van de tijd weer dat de CPU of CPU's inactief waren en dat het systeem een ​​wachtend schijf-I/O-verzoek had.

% stelenGeeft het percentage van de tijd weer die is besteed aan het per ongeluk wachten op de virtuele CPU('s) terwijl de hypervisor een andere virtuele processor bedient.

% inactiefToont het percentage van de tijd dat de CPU('s) inactief waren en het systeem geen lopende schijf-I/O-aanvraag had.

Stap 2
Het tweede rapport dat door de opdracht iostat wordt gegenereerd, is het apparaatgebruiksrapport in dit apparaatrapport. De statistieken worden per fysiek apparaat of per partitie geleverd. Het rapport kan de volgende velden weergeven, afhankelijk van de gebruikte indicatoren:

ApparaatDeze kolom geeft de naam van het apparaat (of partitie), weergegeven als hdiskn voor 2.2 kernels, voor het nde apparaat. Het wordt weergegeven als devm -n met 2.4 kernels, waarbij m het hoofdapparaatnummer is en n een onderscheidend nummer. Bij nieuwere kernels wordt de apparaatnaam weergegeven zoals weergegeven in de map / dev.

tpsGeeft het aantal overdrachten per seconde aan dat het apparaat is binnengekomen. Een transfer is een I/O-verzoek aan het apparaat, dit kan worden gecombineerd met meerdere logische verzoeken tot één I/O-verzoek aan het apparaat. Een overdracht is van onbepaalde grootte.

Blk_read / sVerwijst naar de hoeveelheid gegevens die van het apparaat wordt gelezen, uitgedrukt in een aantal blokken per seconde. De blokken zijn gelijk aan sectoren met kernels 2.4 en hoger en zijn daarom 512 bytes groot. Bij oudere kernen heeft een blok een onbepaalde grootte.

Blk_wrtn / sGeeft de hoeveelheid gegevens aan die naar het apparaat is geschreven, uitgedrukt in meerdere blokken per seconde.

Blk_readHet is het totale aantal gelezen blokken.

Blk_wrtnHet is het totale aantal geschreven blokken.

kB_read / sGeeft de hoeveelheid gegevens aan die van het apparaat is gelezen, uitgedrukt in kilobytes per seconde.

kB_wrtn / sGeeft de hoeveelheid gegevens aan die naar het apparaat is geschreven, uitgedrukt in kilobytes per seconde.

kB_readHet is het totale aantal gelezen kilobytes.

kB_wrtnHet is het totale aantal geschreven kilobytes.

MB_lezen / sVerwijst naar de hoeveelheid gegevens die van het apparaat wordt gelezen, uitgedrukt in megabytes per seconde.

MB_wrtn / sVerwijst naar de hoeveelheid gegevens die van het apparaat is geschreven, uitgedrukt in megabytes per seconde.

MB_readHet is het totale aantal gelezen megabytes.

MB_wrtnHet is het totale aantal geschreven megabytes.

rrqm / sDit is het aantal samengevoegde leesverzoeken per seconde dat in de wachtrij voor het apparaat is geplaatst.

wrqm / sDit is het aantal samengevoegde schrijfverzoeken per seconde dat in de wachtrij voor het apparaat is geplaatst.

r / sHet is het aantal leesverzoeken dat per seconde aan het apparaat is verzonden.

w / zoHet is het aantal schrijfverzoeken dat per seconde aan het apparaat is verzonden.

rsec / sDit is het aantal sectoren dat per seconde van het apparaat wordt gelezen.

wsec / sZe zijn het aantal geschreven sectoren van het apparaat per seconde.

rkB / sZe zijn het aantal kilobytes dat per seconde van het apparaat wordt gelezen.

wkB / sZe zijn het aantal kilobytes dat per seconde naar het apparaat wordt geschreven.

rMB / sZe zijn het aantal megabytes dat per seconde van het apparaat wordt gelezen.

wMB / sDit is het aantal megabytes dat per seconde naar het apparaat wordt geschreven.

avgrq-szHet is de gemiddelde grootte (in sectoren) van de verzoeken die aan het apparaat zijn verzonden.

avgqu-szHet is de gemiddelde duur van de wachtrij van de verzoeken die aan het apparaat zijn verzonden.

wachtenHet is de gemiddelde tijd (in milliseconden) voor de I/O-verzoeken die zijn afgegeven voor het apparaat om in het systeem te worden bediend.

svctmHet is de gemiddelde servicetijd (in milliseconden) voor de I/O-verzoeken die aan het apparaat zijn afgegeven.

%BruikbaarGeeft het percentage CPU-tijd aan waarin I/O-verzoeken aan het apparaat zijn verzonden (bandbreedtegebruik voor het apparaat). Apparaatverzadiging treedt op wanneer deze waarde dicht bij 100% ligt.

Stap 3
Het derde iostat-rapport is het Network File System (NFS)-rapport dat statistieken biedt voor elk netwerkbestandssysteem dat op het systeem is geïnstalleerd. Het rapport toont de volgende velden:

BestandssysteemDeze kolom toont de hostnaam van de NFS-server gevolgd door een dubbele punt en de naam van de map waarin het netwerkbestandssysteem is aangekoppeld.

rBlk_nor / sGeeft het aantal blokken aan dat door toepassingen is gelezen via de oproepinterface van het leessysteem, een blok heeft een grootte van 512 bytes.

wBlk_nor / sGeeft het aantal blokken aan dat door toepassingen is geschreven via de oproepinterface van het schrijfsysteem.

rBlk_dir / sVerwijst naar het aantal blokken dat wordt gelezen uit geopende bestanden met de vlag O_DIRECT.

wBlk_dir / sGeeft het aantal blokken aan dat in open bestanden is geschreven met de vlag O_DIRECT.

rBlk_svr / sVerwijst naar het aantal blokken dat door de NFS-client van de server wordt gelezen via een NFS-leesverzoek.

wBlk_svr / sGeeft het aantal blokken aan dat door de NFS-client naar de server is geschreven via een NFS WRITE-verzoek.

ops / zoGeeft het aantal bewerkingen aan dat per seconde aan het bestandssysteem is uitgegeven.

rops / sGeeft het aantal 'lees'-bewerkingen aan dat per seconde naar het bestandssysteem is verzonden.

wops / sVerwijst naar het aantal 'schrijf'-bewerkingen dat per seconde naar het bestandssysteem is verzonden.

5. Algemene iostat-parameters in Ubuntu 17.10


De parameters die we kunnen gebruiken met iostat zijn:

-CGenereer het CPU-gebruiksrapport.

-NSGenereer het apparaatgebruiksrapport.

-HLaat het NFS-rapport naar keuze worden weergegeven - het is gemakkelijker voor een mens om te lezen.

-kGeeft statistieken weer in kilobytes per seconde in plaats van blokken per seconde. De getoonde gegevens zijn alleen geldig met kernels 2.4 en hoger.

-mHet genereert statistieken in megabytes per seconde in plaats van blokken of kilobytes per seconde. De getoonde gegevens zijn alleen geldig met kernels 2.4 en hoger.

-NGeeft het rapport Network File System (NFS) weer. Deze optie werkt alleen met kernel 2.6.17 en latere versies.

-P[{apparaat [,…] | ALL}]: De optie -p toont de statistieken van de blokapparaten en al hun partities die door het systeem worden gebruikt. Als we een apparaatnaam toevoegen aan de opdrachtregel, worden de statistieken en alle partities weergegeven. Ten slotte geeft het trefwoord ALL aan dat statistieken moeten worden weergegeven voor alle door het systeem gedefinieerde blokpartities en apparaten.

-tDrukt de tijd af van elk rapport dat wordt gegenereerd. De indeling van de tijdstempel kan afhankelijk zijn van de waarde van de omgevingsvariabele S_TIME_FORMAT.

-VDruk de gebruikte versie van iostat af.

-xUitgebreide statistieken weergeven.

-zInstrueert iostat om de uitvoer over te slaan van elk apparaat waarvoor geen activiteit is tijdens de geselecteerde voorbeeldperiode.

Zoals we kunnen zien, is iostat meer dan een eenvoudig systeemhulpprogramma, we moeten er het beste van maken en dus onze besturingssystemen op een veel completere manier beheren.

wave wave wave wave wave