Dstat biedt waardevolle inzichten in de systeemprestaties door het weergeven van informatie over het virtueel geheugen, netwerkverbindingen, CPU activiteit, in- en uitvoerapparaten, enz. Dstat kan je dus beschouwen als een vervanger voor oudere opdrachten zoals vmstat, netstat, iostat en ifstat.
Dstat installeer je in openSUSE Leap 15.1 met de opdracht:
dany@pindabook:~> sudo zypper install dstat
[sudo] wachtwoord voor root:
Gegevens van opslagruimte laden...
Lezen van geïnstalleerde pakketten...
Pakketafhankelijkheden oplossen...
Het volgende NIEUWE pakket zal worden geïnstalleerd:
dstat
1 nieuw te installeren pakket.
Totale downloadgrootte: 121,6 KiB. Reeds in de cache: 0 B. Na de bewerking zal aanvullend 679,6 KiB worden gebruikt.
Doorgaan? [j/n/v/...? alle opties tonen] (j):
pakket dstat-0.7.3-lp151.3.1.noarch wordt opgehaald (1/1), 121,6 KiB (679,6 KiB uitgepakt)
Ophalen: dstat-0.7.3-lp151.3.1.noarch.rpm ......................................................................[gereed (14,9 KiB/s)]
Controleren op conflicten tussen bestanden: .................................................................................[gereed]
(1/1) Installeren van: dstat-0.7.3-lp151.3.1.noarch .........................................................................[gereed]
Om met dstat om de 2 seconden, 6 keer na elkaar de CPU belasting (-c optie) wilt opvragen, gebruik je je opdracht:
dany@pindabook:~> dstat -c 2 6
--total-cpu-usage--
usr sys idl wai stl
1 0 98 0 0
0 0 100 0 0
0 0 100 0 0
0 3 97 0 0
0 0 100 0 0
0 0 100 0 0
De eerste regel met meetgegevens verschijnt direct en toont de gemiddelde waarden vanaf de systeemstart tot nu. Daarna worden de meetgegevens van de intervallen weergegeven.
Dstat kan met opties de volgende informatie weergeven:
Zonder opties geeft dstat bovenstaande standaard informatie weer:
dany@pindabook:~> dstat 2 6
You did not select any stats, using -cdngy by default.
--total-cpu-usage-- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai stl| read writ| recv send| in out | int csw
1 0 99 0 0| 520k 99k| 0 0 | 0 0 | 198 384
0 0 100 0 0| 0 0 | 54B 574B| 0 0 | 120 216
0 0 100 0 0| 0 10k| 78B 367B| 0 0 | 124 230
0 0 100 0 0| 0 0 | 54B 395B| 0 0 | 136 210
0 0 100 0 0| 0 0 | 171B 440B| 0 0 | 246 246
0 0 100 0 0| 0 0 | 150B 342B| 0 0 | 168 296
Let op de melding "You did not select any stats, using -cdngy by default.". Deze melding kan je onderdrukken met de -a (--all) optie:
dany@pindabook:~> dstat -a 2 6
--total-cpu-usage-- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai stl| read writ| recv send| in out | int csw
1 0 99 0 0| 461k 88k| 0 0 | 0 0 | 191 368
0 0 100 0 0| 0 0 | 150B 574B| 0 0 | 132 227
0 0 100 0 0| 0 0 | 54B 342B| 0 0 | 127 234
0 0 100 0 0| 0 0 | 54B 342B| 0 0 | 118 213
0 0 100 0 0| 0 0 | 78B 367B| 0 0 | 124 225
0 0 100 0 0| 0 0 | 128B 436B| 0 0 | 124 216
Als je geen tijdsinterval en aantal metingen opgeeft, blijft de opdracht gegevens opvragen tot je Ctrl+c drukt.
dany@pindabook:~> dstat
You did not select any stats, using -cdngy by default.
--total-cpu-usage-- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai stl| read writ| recv send| in out | int csw
1 0 99 0 0| 412k 79k| 0 0 | 0 0 | 184 354
0 0 100 0 0| 0 0 | 54B 798B| 0 0 | 124 217
0 0 100 0 0| 0 0 | 54B 350B| 0 0 | 119 224
0 0 100 0 0| 0 0 | 54B 350B| 0 0 | 126 224 ^C
De CPU belasting wordt verdeeld over gebruikers- (usr) en systeembelasting (sys). Daarenboven staat de CPU de meeste tijd (99%) niets te doen (idl).
De schijfactiviteit wordt verdeeld in lees- (read) en schrijfactiviteit (write).
De netwerkactiviteit is opgedeeld in ontvangen (recv) en verzonden (send) hoeveelheid gegevens.
De voorbeelden tonen geen pagina (paging) activiteit. Er worden dus geen uitvoerbare blokken in het virtueel geheugen van een proces geladen.
Er worden wat interrupts (int) en context switching (csw) uitgevoerd, maar geen verontrustende aantallen en zonder pieken. Interrupts onderbreken lopende processen voor dringender zaken, terwijl context switching de processtatus bewaard om op een later tijdstip verder afgewerkt te worden.
Onderstaande opdracht onderzoekt het geheugengebruik. Merk op dat er veel vrij geheugen en weinig geheugen in gebruik is, het systeem heeft dus in de geteste situatie absoluut geen gebrek aan geheugenruimte.
dany@pindabook:~> dstat -m 2 3
------memory-usage-----
used free buff cach
633M 6426M 61.7M 778M
633M 6426M 61.7M 778M
633M 6426M 61.7M 778M
Een uitgebreider rapport kan je opvragen met de opdracht:
dany@pindabook:~> dstat --mem-adv 2 3
-------------advanced-memory-usage-------------
total used free buff cach dirty shmem recl
7881M 631M 6428M 61.8M 778M 20.0k 88.9M 70.2M
7881M 631M 6428M 61.8M 778M 20.0k 88.9M 70.2M
7881M 631M 6428M 61.8M 778M 20.0k 88.9M 70.2M
De volgende opdracht toont het aantal geopende bestanden en gebruikte inodes (schijfruimte):
dany@pindabook:~> dstat --fs 2 3
--filesystem-
files inodes
6368 52170
6368 52170
6368 52170
Je kunt de resultaten opslaan in een CSV bestand om dit later te bekijken en/of te verwerken met een rekenblad:
dany@pindabook:~>dstat --output /tmp/stats.csv -a 2 5
--total-cpu-usage-- -dsk/total- -net/total- ---paging-- ---system-- usr sys idl wai stl| read writ| recv send| in out | int csw 2 1 98 0 0|1072k 244k| 0 0 | 0 0 | 284 558 0 0 100 0 0| 0 0 | 54B 574B| 0 0 | 127 229 0 0 100 0 0| 0 0 | 87B 389B| 0 0 | 121 216 0 0 100 0 0| 0 14k| 54B 342B| 0 0 | 116 222 0 0 100 0 0| 0 0 | 91B 389B| 0 0 | 124 227 dany@pindabook:~>cat /tmp/stats.csv
"Dstat 0.7.3 CSV output" "Author:","Dag Wieers",,,,"URL:","http://dag.wieers.com/home-made/dstat/" "Host:","pindabook.lan",,,,"User:","dany" "Cmdline:","dstat --output /tmp/stats.csv -a 2 5",,,,"Date:","25 Jan 2020 13:47:14 CET" "total cpu usage",,,,,"dsk/total",,"net/total",,"paging",,"system", "usr","sys","idl","wai","stl","read","writ","recv","send","in","out","int","csw" 1.642,0.567,97.584,0.208,0,1097503.117,250090.695,0,0,0,0,284.211,557.620 0.125,0,99.875,0,0,0,0,54,574,0,0,127,229 0,0.125,99.875,0,0,0,0,87,389,0,0,121,215.500 0,0,100,0,0,0,14336,54,342,0,0,116,222 0,0,100,0,0,0,0,91,389,0,0,123.500,227
De tweede opdracht toont de inhoud van het aangemaakte CVS bestand.
Dstat is een python script die je dus zonder beperkingen kunt bekijken, bestuderen en aanpassen. Niemand belet je de code te bestuderen en de opgedane kennis te gebruiken in eigen scripts.
dany@pindabook:~>which dstat
/usr/bin/dstat dany@pindabook:~>file /usr/bin/dstat
/usr/bin/dstat: Python script, ASCII text executable dany@pindabook:~>more /usr/bin/dstat | head -6
#!/usr/bin/python3 ### This program is free software; you can redistribute it and/or ### modify it under the terms of the GNU General Public License ### as published by the Free Software Foundation; either version 2 ### of the License, or (at your option) any later version.