Tips en Trucs 2023

Iotop - schijf-I/O-activiteit en -gebruik per proces

Iotop is open source en gratis, vergelijkbaar met de top opdracht, dat een gemakkelijke manier biedt om details van Linux schijf-I/O-activiteit te monitoren en een tabel met bestaand I/O-gebruik per proces of thread weer te geven.

Iotop is gebaseerd op Python en heeft de Kernel accounting functie nodig om processen te monitoren en weer te geven. Het is een handig hulpmiddel voor systeembeheerders om het specifieke proces op te sporen dat de oorzaak kan zijn van een hoge schijf I/O lezen/schrijven.

De Kernel accounting functie tijdelijk activeren

De Kernel functie kan je enkel activeren tijdens het opstarten van het systeem. Bij het verschijnen van het GNU GRUB Boot menu (blijft standaard 6 seconden staan), druk je op de e toets. Je kunt de standaard opstartprocedure nu wijzigen (editeren). Voeg achteraan de regel:

        linux       /boot/vmlinuz-6.1.0-13-amd64 root=UUID=a1234b5c-67d8-9ef0-abcd-e1234fa56789 ro quiet

de optie delayacct toe (AZERTY gebruikers opgelet: tijdens het opstarten heb je een QWERTY indeling):

        linux       /boot/vmlinuz-6.1.0-13-amd64 root=UUID=a1234b5c-67d8-9ef0-abcd-e1234fa56789 ro quiet delayacct

Druk op de toets F10 om éénmalig met deze aangepaste configuratie op te starten.

Iotop installeren

dany@pindabook:~$ sudo apt install iotop
[sudo] wachtwoord voor dany: 
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar 
De volgende NIEUWE pakketten zullen geïnstalleerd worden:
  iotop
0 opgewaardeerd, 1 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.
Er moeten 24,1 kB aan archieven opgehaald worden.
Na deze bewerking zal er 109 kB extra schijfruimte gebruikt worden.
Ophalen:1 http://deb.debian.org/debian bookworm/main amd64 iotop amd64 0.6-42-ga14256a-0.1+b2 [24,1 kB]
24,1 kB opgehaald in 0s (653 kB/s)
Voorheen niet geselecteerd pakket iotop wordt geselecteerd.
(Database wordt ingelezen ... 174592 bestanden en mappen momenteel geïnstalleerd.)
Uitpakken van .../iotop_0.6-42-ga14256a-0.1+b2_amd64.deb wordt voorbereid...
Bezig met uitpakken van iotop (0.6-42-ga14256a-0.1+b2) ...
Instellen van iotop (0.6-42-ga14256a-0.1+b2) ...
update-alternatives: /usr/sbin/iotop-py wordt gebruikt om in de automatische modus in /usr/sbin/iotop (iotop) te voorzien
Bezig met afhandelen van triggers voor man-db (2.11.2-2) ...

Iotop gebruiken

Op zijn eenvoudigst kun je iotop uitvoeren zonder argumenten zoals in het voorbeeld.

Je krijgt een lijst van draaiende processen, samen met informatie over hun huidige schijf-I/O-gebruik:
Iotop

De kop van elke kolom spreekt voor zich, maar er zijn hier twee belangrijke dingen om rekening mee te houden:

Met de optie -o of --only toont Iotop enkel de huidige processen of threads die daadwerkelijk I/O uitvoeren, in plaats van alle processen of threads weer te geven.
iotop --only

Om meer te weten te komen over het gebruik, de opties en sneltoetsen van de iotop opdracht, voer je de volgende opdracht uit:

dany@pindabook:~$ /usr/sbin/iotop --help
Usage: /usr/sbin/iotop [OPTIONS]

DISK READ and DISK WRITE are the block I/O bandwidth used during the sampling
period. SWAPIN and IO are the percentages of time the thread spent respectively
while swapping in and waiting on I/O more generally. PRIO is the I/O priority
at which the thread is running (set using the ionice command).

Controls: left and right arrows to change the sorting column, r to invert the
sorting order, o to toggle the --only option, p to toggle the --processes
option, a to toggle the --accumulated option, i to change I/O priority, q to
quit, any other key to force a refresh.

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -o, --only            only show processes or threads actually doing I/O
  -b, --batch           non-interactive mode
  -n NUM, --iter=NUM    number of iterations before ending [infinite]
  -d SEC, --delay=SEC   delay between iterations [1 second]
  -p PID, --pid=PID     processes/threads to monitor [all]
  -u USER, --user=USER  users to monitor [all]
  -P, --processes       only show processes, not all threads
  -a, --accumulated     show accumulated I/O instead of bandwidth
  -k, --kilobytes       use kilobytes instead of a human friendly unit
  -t, --time            add a timestamp on each line (implies --batch)
  -q, --quiet           suppress some lines of header (implies --batch)
  --no-help             suppress listing of shortcuts

Nog meer informatie krijg je bij het opvragen van de man pagina:
man iotop

Iotop verwijderen

Iotop kunnen we in de terminal verwijderen met de opdracht:

dany@pindabook:~$ sudo apt purge iotop
[sudo] wachtwoord voor dany: 
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar 
De volgende pakketten zullen VERWIJDERD worden:
  iotop*
0 opgewaardeerd, 0 nieuw geïnstalleerd, 1 te verwijderen en 2 niet opgewaardeerd.
Na deze bewerking zal er 109 kB schijfruimte vrijkomen.
Wilt u doorgaan? [J/n] 
(Database wordt ingelezen ... 181075 bestanden en mappen momenteel geïnstalleerd.)
iotop (0.6-42-ga14256a-0.1+b2) wordt verwijderd ...
Bezig met afhandelen van triggers voor man-db (2.11.2-2) ...