Het hulpprogramma collectl kan de snelheid van een systeem achterhalen en volgen. De minimale belasting van collectl zorgt dat het monitoren van de systeemprestaties nauwkeurig uitgevoerd wordt. Het monitoren van de systeemprestaties gebeurt door regelmatig de status van het systeem weer te geven. Vergeleken met andere prestatiemonitors kan collectl veel verschillende systeembelastingen volgen, zoals processor, schijven, netwerk, sockets, tcp, inodes, infiniband, lustre, geheugen, nfs, processen, quadrics, slabs en buddyinfo. Collectl werkt zowel interactief als op de achtergrond (daemon) en kan gegevens opslaan en verzamelde data terug afspelen. De verzamelde gegevens kunnen daarenboven naar verschillende formaten geëxporteerd worden.
Collectl wordt in openSUSE Leap 15.3 in een standaard softwarebron aangeboden en installeer je met de volgende opdracht:
dany@pindabook:~> sudo zypper install collectl
[sudo] wachtwoord voor root:
Gegevens van opslagruimte laden...
Lezen van geïnstalleerde pakketten...
Pakketafhankelijkheden oplossen...
Het volgende NIEUWE pakket zal worden geïnstalleerd:
collectl
1 nieuw te installeren pakket.
Totale downloadgrootte: 487,6 KiB. Reeds in de cache: 0 B. Na de bewerking zal aanvullend 1,5 MiB worden gebruikt.
Doorgaan? [j/n/v/...? alle opties tonen] (j):
pakket collectl-4.1.3-bp153.1.15.noarch wordt opgehaald (1/1), 487,6 KiB ( 1,5 MiB uitgepakt)
Ophalen: collectl-4.1.3-bp153.1.15.noarch.rpm ...............................................................................[gereed]
Controleren op conflicten tussen bestanden: .................................................................................[gereed]
(1/1) Installeren van: collectl-4.1.3-bp153.1.15.noarch .....................................................................[gereed]
Aanvullende rpm-uitvoer:
Updating /etc/sysconfig/collectl ...
Zoals bij elk terminalprogramma kan je met de optie --help
alle mogelijke opties met een beschrijving weergeven.
Met de --showsubsys
toont collectl welke systeemparameters gemonitord kunnen worden:
dany@pindabook:~> collectl --showsubsys
The following subsystems can be specified in any combinations with -s or
--subsys in both record and playbackmode. [default=bcdfijmnstx]
These generate summary, which is the total of ALL data for a particular type
b - buddy info (memory fragmentation)
c - cpu
d - disk
f - nfs
i - inodes
j - interrupts by CPU
m - memory
n - network
s - sockets
t - tcp
x - interconnect (currently supported: OFED/Infiniband)
y - slabs
These generate detail data, typically but not limited to the device level
C - individual CPUs, including interrupts if -sj or -sJ
D - individual Disks
E - environmental (fan, power, temp) [requires ipmitool]
F - nfs data
J - interrupts by CPU by interrupt number
M - memory numa/node
N - individual Networks
T - tcp details (lots of data!)
X - interconnect ports/rails (Infiniband/Quadrics)
Y - slabs/slubs
Z - processes
An alternative format lets you add and/or subtract subsystems to the defaults by
immediately following -s with a + and/or -
eg: -s+YZ-x adds slabs & processes and removes interconnet summary data
-s-n removes network summary data
-s-all removes ALL subsystems, something that can handy when playing back
data collected with --import and you ONLY want to see that data
Je kunt collectl uitvoeren zonder opties om informatie i.v.m. de processor, schijven en het netwerk in gemakkelijk te lezen vorm weer te geven.
dany@pindabook:~> collectl
waiting for 1 second sample...
#<----CPU[HYPER]-----><----------Disks-----------><----------Network---------->
#cpu sys inter ctxsw KBRead Reads KBWrit Writes KBIn PktIn KBOut PktOut
0 0 117 171 0 0 0 0 0 1 0 0
0 0 150 192 0 0 0 0 0 3 0 1
0 0 125 183 0 0 0 0 0 1 0 1
0 0 106 176 0 0 0 0 0 1 0 3
0 0 129 199 0 0 0 0 0 3 0 1
0 0 98 164 0 0 0 0 0 1 0 1
0 0 152 251 0 0 0 0 0 2 0 1
1 0 308 404 0 0 0 0 2 19 2 25
0 0 120 195 0 0 0 0 0 1 0 1
Ouch!
Druk op de sneltoets Ctrl+c om collectl te stoppen.
Om informatie over alle door collectl ondersteunde systeemgegevens weer te geven, gebruik je de -all
optie:
dany@pindabook:~> collectl --all
waiting for 1 second sample...
#<----CPU[HYPER]-----><-------Int--------><-----------------Memory-----------------><----------Disks-----------><----------Network----------><-------TCP--------><------Sockets-----><----Files---><------NFS Totals------>
#cpu sys inter ctxsw Cpu0 Cpu1 Cpu2 Cpu3 Free Buff Cach Inac Slab Map Fragments KBRead Reads KBWrit Writes KBIn PktIn KBOut PktOut IP Tcp Udp Icmp Tcp Udp Raw Frag Handle Inodes Reads Writes Meta Comm
0 0 113 181 16 67 27 1 6G 24M 962M 424M 145M 654M ksssokjhcas 0 0 0 0 0 0 0 0 0 0 0 0 508 0 0 0 6560 80663 0 0 0 0
0 0 122 198 26 67 26 3 6G 24M 962M 424M 145M 654M ksssokjhcas 0 0 0 0 0 1 1 1 0 0 0 0 508 0 0 0 6560 80663 0 0 0 0
0 0 101 160 9 65 26 1 6G 24M 962M 424M 145M 654M ksssokjhcas 0 0 0 0 0 1 0 1 0 0 0 0 508 0 0 0 6560 80663 0 0 0 0
0 0 165 286 32 66 24 43 6G 24M 962M 424M 145M 654M ksssokjhcas 0 0 0 0 0 1 0 1 0 0 0 0 508 0 0 0 6560 80663 0 0 0 0
0 0 151 223 28 64 30 29 6G 24M 962M 424M 145M 654M ksssokjhcas 0 0 0 0 0 1 0 1 0 0 0 0 508 0 0 0 6560 80663 0 0 0 0
0 0 131 205 17 69 26 20 6G 24M 962M 424M 145M 654M ksssokjhcas 0 0 0 0 0 1 0 1 0 0 0 0 508 0 0 0 6560 80663 0 0 0 0
0 0 220 390 52 69 59 39 6G 24M 962M 424M 145M 654M ksssokjhcas 0 0 0 0 0 1 0 1 0 0 0 0 508 0 0 0 6560 80663 0 0 0 0
Ouch!
Collectl kan met de optie --top
de top opdracht vervangen:
dany@pindabook:~> collectl --top
Om enkel de processor, geheugen en schijfprestaties te volgen gebruik je de optie -scmd
:
dany@pindabook:~> collectl -scmd
waiting for 1 second sample...
#<----CPU[HYPER]-----><-----------Memory-----------><----------Disks----------->
#cpu sys inter ctxsw Free Buff Cach Inac Slab Map KBRead Reads KBWrit Writes
0 0 206 277 5G 25M 1G 425M 147M 737M 0 0 0 0
0 0 150 188 5G 25M 1G 425M 147M 737M 0 0 0 0
0 0 108 168 5G 25M 1G 425M 147M 737M 0 0 0 0
0 0 141 200 5G 25M 1G 425M 147M 737M 0 0 0 0
0 0 144 188 5G 25M 1G 425M 147M 737M 0 0 0 0
Ouch!
Enkel het geheugen:
dany@pindabook:~> collectl -sm
waiting for 1 second sample...
#<-----------Memory----------->
#Free Buff Cach Inac Slab Map
5G 25M 1G 425M 147M 737M
5G 25M 1G 425M 147M 737M
5G 25M 1G 425M 147M 737M
5G 25M 1G 425M 147M 737M
Ouch!
Enkel de processor, schijven en netwerk:
dany@pindabook:~> collectl -scdn
waiting for 1 second sample...
#<----CPU[HYPER]-----><----------Disks-----------><----------Network---------->
#cpu sys inter ctxsw KBRead Reads KBWrit Writes KBIn PktIn KBOut PktOut
0 0 116 171 0 0 0 0 0 2 0 0
0 0 170 205 0 0 0 0 0 3 0 1
0 0 112 166 0 0 0 0 0 2 0 2
0 0 142 189 0 0 0 0 0 2 0 2
Ouch!
Enkel TCP en processor:
dany@pindabook:~> collectl -stc
waiting for 1 second sample...
#<----CPU[HYPER]-----><-------TCP-------->
#cpu sys inter ctxsw IP Tcp Udp Icmp
0 0 114 167 0 0 0 0
0 0 136 189 0 0 0 0
0 0 100 158 0 0 0 0
0 0 169 189 0 0 0 0
Ouch!
Om informatie op te vragen over de processen:
dany@pindabook:~> collectl -c1 -sZ -i:1
waiting for 1 second sample...
### RECORD 1 >>> pindabook <<< (1637768868.001) (Wed Nov 24 16:47:48 2021) ###
# PROCESS SUMMARY (counters are /sec)
# PID User PR PPID THRD S VSZ RSS CP SysT UsrT Pct AccuTime RKB WKB MajF MinF Command
1 root 20 0 0 S 233M 13M 0 0.00 0.00 0 00:04.39 0 0 0 0 /usr/lib/systemd/systemd
2 root 20 0 0 S 0 0 0 0.00 0.00 0 00:00.00 0 0 0 0 kthreadd
3 root 0 2 0 I 0 0 0 0.00 0.00 0 00:00.00 0 0 0 0 rcu_gp
4 root 0 2 0 I 0 0 0 0.00 0.00 0 00:00.00 0 0 0 0 rcu_par_gp
6 root 0 2 0 I 0 0 0 0.00 0.00 0 00:00.00 0 0 0 0 kworker/0:0H-kblockd
7 root 20 2 0 I 0 0 0 0.00 0.00 0 00:00.16 0 0 0 0 kworker/0:1-mm_percpu_wq
9 root 0 2 0 I 0 0 0 0.00 0.00 0 00:00.00 0 0 0 0 mm_percpu_wq
10 root 20 2 0 S 0 0 0 0.00 0.00 0 00:00.03 0 0 0 0 ksoftirqd/0
...
M.a.w. je kunt met collectl verschillende systeeminformatie naast en bij elkaar plaatsen, wat het opsporen van prestatie gerelateerde problemen kan helpen oplossen. Veel succes met collectl.
In openSUSE Leap 15.3 verwijder je collectl volledig van de computer met de opdracht:
dany@pindabook:~> sudo zypper remove -u collectl
[sudo] wachtwoord voor root:
Lezen van geïnstalleerde pakketten...
Pakketafhankelijkheden oplossen...
Het volgende pakket zal worden VERWIJDERD:
collectl
1 te verwijderen pakket.
Na de bewerking zal 1,5 MiB worden vrijgemaakt.
Doorgaan? [j/n/v/...? alle opties tonen] (j):
(1/1) Verwijderen van collectl-4.1.3-bp153.1.15.noarch ......................................................................[gereed]
Aanvullende rpm-uitvoer:
rm: cannot remove '/var/lib/systemd/migrated/collectl': No such file or directory