Tips en Trucs 2022

BPYTOP Systeemmonitor

Elke systeembeheerder weet bij het uitvoeren van taken, hoe belangrijk het opvolgen van de systeembelasting is. Met behulp van monitors kunnen we bij het uitvoeren van taken continu de beschikbare systeemreserves opvolgen. Vandaag bekijken we de systeemmonitor BPYTOP voor Linux en andere Unix-achtige besturingssystemen (BSD en macOS). BPYTOP toont statistieken over de belasting van de processor, het geheugen, schijven, netwerk en processen.

BPYTOP installeren

BPYTOP is een Python 3 programma die je met de volgende opdracht installeert:

dany@pindabook:~> sudo pip3 install bpytop
[sudo] wachtwoord voor root: 
Collecting bpytop
  Downloading bpytop-1.0.54-py3-none-any.whl (73 kB)
     |████████████████████████████████| 73 kB 296 kB/s 
Collecting psutil<6.0.0,>=5.7.0
  Downloading psutil-5.9.0-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (279 kB)
     |████████████████████████████████| 279 kB 115 kB/s 
Installing collected packages: psutil, bpytop
Successfully installed bpytop-1.0.54 psutil-5.9.0

BPYTOP maakt intensief gebruik van kleuren en grafieken. M.a.w. de gebruikte terminal moet 24-bit truecolor ondersteunen. Konsole (KDE) doet dit prima.

Start BPYTOP met de opdracht:

dany@pindabook:~> bpytop
BPYTOP

Zoals je op de afbeelding kunt zien, toont BPYTOP de volgende informatie:

Standaard wordt om de 2 seconden (2000ms) nieuwe informatie verzameld en weergegeven. Dit kan je in stappen van 100ms aanpassen door op de + en/of - toets te drukken. De sneltoetsen voor het aanpassen van een grafiek, weergave, enz. wordt steeds grijs weergeven. M.a.w. let op grijze tekens zoals de + en - bij + 2000ms - (rechts bovenaan het terminalvenster).

Processen selecteren en bekijken

BPYTOP Info

Gebruik de pijltoeten op en neer om een proces te selecteren. De toetsen PgUp en PgDn zorgen dat je snel door de proceslijst kunt scrollen. De verschillende kolommen bevatten per proces de volgende informatie:

Standaard zijn de processen gerangschikt naar processorbelasting met de grootse verbruiker bovenaan. Je kunt op een andere kolom sorteren door met de pijltoetsen links en rechts een kolom te selecteren. Om de sorteervolgorde om te keren, druk je op de r-toets (reverse).

Om gedetailleerde informatie over een geselecteerd proces te bekijken druk je op Enter. Om de gedetailleerde informatie terug te sluiten, druk je nogmaals Enter.

Processen filteren

Om een bepaald proces in de lijst sneller te vinden, druk je op de f-toets (filter). Daarna typ je de naam van het gewenste process, onmiddellijk start het zoeken. In het voorbeeld zoek ik naar processen die beginnen met de letters ssh. Druk op Enter om de filter te activeren. Met Delete verwijder je de filter en worden terug alle processen weergegeven.

BPYTOP Filter

Je kunt geselecteerde processen ook beïnvloeden door signalen te sturen zoals terminate, kill en interrupt). Doe dit enkel als je weet wat je doet. Deze signalen kan je bijvoorbeeld gebruiken om vastgelopen processen af te sluiten.

Help weergeven

Met een druk op de h-toets verschijnt de BPYTOP Help pagina.

BPYTOP Help

Druk nogmaals op de h-toets om de help pagina terug te sluiten.

Druk op de sneltoets Shift+m (hoofdletter m) om het menu weer te geven. Met Esc verlaat je het menu.

BPYTOP afsluiten

Druk op de q-toets (quit) om BPYTOP af te sluiten.

BPYTOP configureren

De configuratie van BPYTOP wordt in het configuratiebestand .config/bpytop/bpytop.conf dat je met de cat opdracht kunt weergeven:

dany@pindabook:~> cat .config/bpytop/bpytop.conf 
#? Config file for bpytop v. 1.0.54

#* Color theme, looks for a .theme file in "/usr/[local/]share/bpytop/themes" and "~/.config/bpytop/themes", "Default" for builtin default theme.
#* Prefix name by a plus sign (+) for a theme located in user themes folder, i.e. color_theme="+monokai"
color_theme="Default"

#* If the theme set background should be shown, set to False if you want terminal background transparency
theme_background=True

#* Set bpytop view mode, "full" for everything shown, "proc" for cpu stats and processes, "stat" for cpu, mem, disks and net stats shown.
view_mode=full

#* Update time in milliseconds, increases automatically if set below internal loops processing time, recommended 2000 ms or above for better sample times for graphs.
update_ms=2000

#* Processes update multiplier, sets how often the process list is updated as a multiplier of "update_ms".
#* Set to 2 or higher to greatly decrease bpytop cpu usage. (Only integers)
proc_update_mult=2

#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu responsive",
#* "cpu lazy" updates top process over time, "cpu responsive" updates top process directly.
proc_sorting="cpu lazy"

#* Reverse sorting order, True or False.
proc_reversed=False

#* Show processes as a tree
proc_tree=False

#* Which depth the tree view should auto collapse processes at
tree_depth=3

#* Use the cpu graph colors in the process list.
proc_colors=True

#* Use a darkening gradient in the process list.
proc_gradient=True

#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
proc_per_core=True

#* Show process memory as bytes instead of percent
proc_mem_bytes=True

#* Check cpu temperature, needs "osx-cpu-temp" on MacOS X.
check_temp=True

#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
cpu_sensor=Auto

#* Show temperatures for cpu cores also if check_temp is True and sensors has been found
show_coretemp=True

#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
draw_clock="%X"

#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
background_update=True

#* Custom cpu model name, empty string to disable.
custom_cpu_name=""

#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with a comma ",".
#* Begin line with "exclude=" to change to exclude filter, oterwise defaults to "most include" filter. Example: disks_filter="exclude=/boot, /home/user"
disks_filter=""

#* Show graphs instead of meters for memory values.
mem_graphs=True

#* If swap memory should be shown in memory box.
show_swap=True

#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
swap_disk=False

#* If mem box should be split to also show disks info.
show_disks=True

#* Set fixed values for network graphs, default "10M" = 10 Mibibytes, possible units "K", "M", "G", append with "bit" for bits instead of bytes, i.e "100mbit"
net_download="10M"
net_upload="10M"

#* Start in network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
net_auto=True

#* Sync the scaling for download and upload to whichever currently has the highest scale
net_sync=False

#* If the network graphs color gradient should scale to bandwith usage or auto scale, bandwith usage is based on "net_download" and "net_upload" values
net_color_fixed=False

#* Show battery stats in top right if battery is present
show_battery=True

#* Show init screen at startup, the init screen is purely cosmetical
show_init=True

#* Enable check for new version from github.com/aristocratos/bpytop at start.
update_check=True

#* Set loglevel for "~/.config/bpytop/error.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
log_level=WARNING

Jen kunt de configuratie in dit bestand aanpassen, maar enkel als BPYTOP afgesloten is. Veiliger is de configuratie aan te passen vanuit BPYTOP zelf. Daarvoor start je BPYTOP en druk je op de o-toets.

BPYTOP Options

Met de pijltoetsen Op en Neer selecteer je een aan te passen optie. Met de pijltoetsen Links en Rechts pas je geselecteerde optie aan. Bij sommige opties gebruik je Enter om waarden in te geven. Let op de pijltekens of het Enter-teken in een geselecteerde optie. Sluit de opties pagina door nogmaals op o-toets te drukken.

BPYTOP volledig van de computer verwijderen

Python 3 programma's, zoals BPYTOP verwijder je als volgt:

De te verwijderen pakketnamen zijn dezelfde als degene die vermeld werden bij het installeren van BPYTOP. Sommige van deze ondersteunende pakketten worden ook door andere Python programma's gebruikt. Waardoor bij het verwijderen van een ondersteunend pakket een ander Python programma niet meer werkt. Voer dus voor alle zekerheid een extra controle uit:

dany@pindabook:~> sudo pip3 check
pygobject 3.34.0 requires pycairo, which is not installed.

En blijkbaar is er op mijn systeem een Python pakket (bibliotheek) tekort. Maar geen pakket dat ik heb verwijderd, dus alles OK.

Met de volgende opdracht kan je nagaan of BPYTOP nog andere bestanden op jouw systeem heeft achtergelaten:

dany@pindabook:~> find . -iname *bpytop*
./.config/bpytop
./.config/bpytop/bpytop.conf

Blijkbaar heeft BPYTOP in de map config een map aangemaakt om zijn configuratiebestanden in op te slaan. Verwijder deze map met de opdracht:

dany@pindabook:~> rm -r ./.config/bpytop/