Tips en Trucs 2024

Input/Output statistieken met iostat

Iostat is een terminalprogramma dat gedetailleerde statistieken biedt over invoer-/uitvoerbewerkingen op systeemapparaten, zoals schijven. Het maakt deel uit van het sysstat-pakket, dat je met met apt kunt installeren. Iostat helpt de prestaties van opslagapparaten te controleren door statistieken te rapporteren zoals de hoeveelheid gelezen of geschreven gegevens, de tijd die je hebt besteed aan het wachten op I/O-bewerkingen en het percentage CPU-tijd dat wordt besteed aan I/O-taken. Iostat is vooral handig voor het diagnosticeren van knelpunten op schijven en het optimaliseren van de prestaties van het systeem.

Iostat installeren

iostat is standaard opgenomen in het sysstat-pakket. Je kunt het eenvoudig installeren door de volgende opdracht uit te voeren:

dany@pindabook:~$ sudo apt install sysstat
[sudo] wachtwoord voor root: 
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar 
Voorgestelde pakketten:
  isag
De volgende NIEUWE pakketten zullen geïnstalleerd worden:
  sysstat
0 opgewaardeerd, 1 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.
Er moeten 596 kB aan archieven opgehaald worden.
Na deze bewerking zal er 1.828 kB extra schijfruimte gebruikt worden.
Ophalen:1 http://deb.debian.org/debian bookworm/main amd64 sysstat amd64 12.6.1-1 [596 kB]
596 kB opgehaald in 0s (7.634 kB/s)
Voorconfigureren van pakketten ...
Voorheen niet geselecteerd pakket sysstat wordt geselecteerd.
(Database wordt ingelezen ... 174013 bestanden en mappen momenteel geïnstalleerd.)
Uitpakken van .../sysstat_12.6.1-1_amd64.deb wordt voorbereid...
Bezig met uitpakken van sysstat (12.6.1-1) ...
Instellen van sysstat (12.6.1-1) ...

Creating config file /etc/default/sysstat with new version
update-alternatives: /usr/bin/sar.sysstat wordt gebruikt om in de automatische modus in /usr/bin/sar (sar) te voorzien
Created symlink /etc/systemd/system/sysstat.service.wants/sysstat-collect.timer → /lib/systemd/system/sysstat-collect.timer.
Created symlink /etc/systemd/system/sysstat.service.wants/sysstat-summary.timer → /lib/systemd/system/sysstat-summary.timer.
Created symlink /etc/systemd/system/multi-user.target.wants/sysstat.service → /lib/systemd/system/sysstat.service.
Bezig met afhandelen van triggers voor man-db (2.11.2-2) ...

Iostat gebruiken

Laten we beginnen met het uitvoeren van de opdracht iostat zonder opties. Iostat geeft informatie weer over het CPU-gebruik en I/O-statistieken van jouw systeem:

dany@pindabook:~$ iostat
Linux 6.1.0-25-amd64 (pindabook)        22-09-24        _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          1,56    0,00    0,78    0,45    0,00   97,21

Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
sda              44,22      1392,30       345,72         0,00     872135     216557          0

De eerste regel geeft de Linux-kernelversie en hostnaam weer in de bovenstaande uitvoer. De volgende twee regels geven CPU-statistieken weer, zoals het gemiddelde CPU-gebruik, het percentage van de tijd dat de CPU wachtte op de I/O-reactie, het percentage wachttijd van de virtuele CPU en het percentage van de tijd dat de CPU niets deed. De volgende twee regels geven het rapport over het gebruik van het apparaat weer, zoals het aantal blokken dat per seconde wordt gelezen en geschreven, en het totale aantal blokken die per seconde worden gelezen en geschreven.

Iostat geeft standaard het rapport weer met de huidige datum. Als je de huidige tijd wilt weergeven, voer je de volgende opdracht uit:

dany@pindabook:~$ iostat -t
Linux 6.1.0-25-amd64 (pindabook)        22-09-24        _x86_64_        (4 CPU)

22-09-24 16:11:10
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          1,20    0,00    0,60    0,35    0,00   97,85

Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
sda              33,84      1054,04       263,70         0,00     872135     218189          0

Als je de versie van iostat wilt controleren, voer je de volgende opdracht uit:

dany@pindabook:~$ iostat -V
sysstat — versie 12.6.1
(C) Sebastien Godard (sysstat  orange.fr)

Je kunt alle beschikbare opties van iostat met de volgende opdracht weergeven:

dany@pindabook:~$ iostat --help
Gebruik:  iostat [OPTIE...] [ []]
Options are:
[ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -s ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ]
[ { -f | +f }  ] [ -j { ID | LABEL | PATH | UUID | ... } ]
[ --compact ] [ --dec={ 0 | 1 | 2 } ] [ --human ] [ --pretty ] [ -o JSON ]
[ [ -H ] -g  ] [ -p [  [,...] | ALL ] ]
[  [...] | ALL ]

Als je alleen het apparaatrapport wilt bekijken, voer je de volgende opdracht uit:

dany@pindabook:~$ iostat -d
Linux 6.1.0-25-amd64 (pindabook)        22-09-24        _x86_64_        (4 CPU)

Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
sda             266,28     12151,41       448,38         0,00     643295      23737          0

Om het apparaatrapport elke 5 seconden te bekijken, en dit 3 maal:

dany@pindabook:~$ iostat -d 5 3
Linux 6.1.0-25-amd64 (pindabook)        22-09-24        _x86_64_        (4 CPU)

Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
sda              96,62      4289,57       173,75         0,00     643907      26081          0


Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
sda               0,40         0,00         3,20         0,00          0         16          0


Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
sda               0,80        17,60         3,20         0,00         88         16          0

Als je de statistieken van specifieke apparaten wilt bekijken, voer je de volgende opdracht uit:

dany@pindabook:~$ iostat -p sda
Linux 6.1.0-25-amd64 (pindabook)        22-09-24        _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          2,23    0,00    1,47    0,63    0,00   95,67

Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
sda              57,93      2542,08       106,50         0,00     644011      26981          0
sda1              0,23         8,24         0,00         0,00       2088          0          0
sda2              0,90        22,01         0,00         0,00       5576          1          0
sda3              0,27         9,03         0,00         0,00       2288          0          0
sda4             54,56      2447,71       103,66         0,00     620102      26260          0
sda7              1,24        40,82         2,84         0,00      10341        720          0

iostat

Je kunt de statistieken van meerdere apparaten met de volgende opdracht bekijken:

iostat -p sda, sdb, sdc

Als je de I/O-statistieken van het apparaat in MB/seconde wilt weergeven, voer je de volgende opdracht uit:

dany@pindabook:~$ iostat -m
Linux 6.1.0-25-amd64 (pindabook)        22-09-24        _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          1,77    0,00    1,03    0,42    0,00   96,78

Device             tps    MB_read/s    MB_wrtn/s    MB_dscd/s    MB_read    MB_wrtn    MB_dscd
sda              38,61         1,75         0,25         0,00        714        103          0

Als je de uitgebreide gegevens voor een specifieke partitie (sda4) wilt bekijken, voer je de volgende opdracht uit:

dany@pindabook:~$ iostat -x sda4
Linux 6.1.0-25-amd64 (pindabook)        22-09-24        _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          1,53    0,00    0,86    0,33    0,00   97,28

Device            r/s     rkB/s   rrqm/s  %rrqm r_await rareq-sz     w/s     wkB/s   wrqm/s  %wrqm w_await wareq-sz     d/s     dkB/s   drqm/s  %drqm d_await dareq-sz     f/s f_await  aqu-sz  %util
sda4            24,96   1354,92     8,58  25,59    0,70    54,29    3,94    202,92     3,18  44,67    2,65    51,49    0,00      0,00     0,00   0,00    0,00     0,00    0,00    0,00    0,03   1,19

Als je alleen de CPU-gebruiksstatistieken wilt weergeven, voer je de volgende opdracht uit:

dany@pindabook:~$ iostat -c
Linux 6.1.0-25-amd64 (pindabook)        22-09-24        _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          1,38    0,00    0,75    0,28    0,00   97,58

Iostat verwijderen