BCC - Dynamic Tracing Tools fir Linux Performance Monitoring, Networking a Méi


BCC (BPF Compiler Collection) ass e mächtege Set vu passenden Tools a Beispilldateien fir Ressourcevoll Kernel Tracing a Manipulatioun Programmer ze kreéieren. Et benotzt erweiderten BPF (Berkeley Packet Filters), ursprénglech bekannt als eBPF wat eng vun den neie Featuren am Linux 3.15 war.

Praktesch erfuerderen déi meescht vun de Komponenten, déi vu BCC benotzt ginn, Linux 4.1 oder méi héich, a seng bemierkenswäert Feature enthalen:

  1. Erfuerdert keen Drëtt-Party Kernel Modul, well all Tools funktionnéieren op Basis vu BPF wat an de Kernel agebaut ass a BCC benotzt Features déi an der Linux 4.x Serie bäigefüügt ginn.
  2. Erméiglecht Observatioun vun der Softwareausféierung.
  3. Besetzt aus verschiddene Leeschtungsanalyse-Tools mat Beispilldateien a Man-Säiten.

Am Beschten gëeegent fir fortgeschratt Linux Benotzer, BCC mécht et einfach BPF Programmer ze schreiwen mat Kernelinstrumentatioun am C, a Frontends am Python a Lua. Zousätzlech ënnerstëtzt et verschidde Aufgaben wéi Leeschtungsanalyse, Iwwerwaachung, Netzwierkverkéierskontrolle plus vill méi.

Wéi Installéiere BCC a Linux Systemer

Denkt drun datt BCC Features benotzt, déi an der Linux Kernel Versioun 4.1 oder méi bäigefüügt ginn, an als Fuerderung sollt de Kernel mat de Fändelen kompiléiert ginn:

CONFIG_BPF=y
CONFIG_BPF_SYSCALL=y
# [optional, for tc filters]
CONFIG_NET_CLS_BPF=m
# [optional, for tc actions]
CONFIG_NET_ACT_BPF=m
CONFIG_BPF_JIT=y
CONFIG_HAVE_BPF_JIT=y
# [optional, for kprobes]
CONFIG_BPF_EVENTS=y

Fir Är Kernel Fändelen ze kontrolléieren, kuckt d'Datei /proc/config.gz oder lafen d'Befehle wéi an de Beispiller hei drënner:

[email  ~ $ grep CONFIG_BPF= /boot/config-`uname -r`
CONFIG_BPF=y
[email  ~ $ grep CONFIG_BPF_SYSCALL= /boot/config-`uname -r`
CONFIG_BPF_SYSCALL=y
[email  ~ $ grep CONFIG_NET_CLS_BPF= /boot/config-`uname -r`
CONFIG_NET_CLS_BPF=m
[email  ~ $ grep CONFIG_NET_ACT_BPF= /boot/config-`uname -r`
CONFIG_NET_ACT_BPF=m
[email  ~ $ grep CONFIG_BPF_JIT= /boot/config-`uname -r`
CONFIG_BPF_JIT=y
[email  ~ $ grep CONFIG_HAVE_BPF_JIT= /boot/config-`uname -r`
CONFIG_HAVE_BPF_JIT=y
[email  ~ $ grep CONFIG_BPF_EVENTS= /boot/config-`uname -r`
CONFIG_BPF_EVENTS=y

Nodeems Dir Kernel Fändelen verifizéiert hutt, ass et Zäit BCC Tools an Linux Systemer z'installéieren.

Nëmmen d'Nuetspakete gi fir Ubuntu 16.04 erstallt, awer d'Installatiounsinstruktiounen si ganz einfach. Kee Bedierfnes fir Kernel Upgrade oder kompiléiert et aus der Quell.

$ echo "deb [trusted=yes] https://repo.iovisor.org/apt/xenial xenial-nightly main" | sudo tee /etc/apt/sources.list.d/iovisor.list
$ sudo apt-get update
$ sudo apt-get install bcc-tools

Fänkt un mat engem 4.3+ Linux Kernel z'installéieren, vun http://kernel.ubuntu.com/~kernel-ppa/mainline.

Als Beispill schreift e klenge Shell-Skript bcc-install.sh mam Inhalt hei drënner.

Bemierkung: Update PREFIX Wäert op de leschten Datum, a kuckt och d'Fichier'en an der PREFIX url zur Verfügung fir den aktuellen REL Wäert ze kréien, ersetzt se am Shell Skript.

#!/bin/bash
VER=4.5.1-040501
PREFIX=http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.5.1-wily/
REL=201604121331
wget ${PREFIX}/linux-headers-${VER}-generic_${VER}.${REL}_amd64.deb
wget ${PREFIX}/linux-headers-${VER}_${VER}.${REL}_all.deb
wget ${PREFIX}/linux-image-${VER}-generic_${VER}.${REL}_amd64.deb
sudo dpkg -i linux-*${VER}.${REL}*.deb

Späichert d'Datei a gitt eraus. Maacht et ausführbar, da lafen se wéi gewisen:

$ chmod +x bcc-install.sh
$ sh bcc-install.sh

Duerno, Restart Äre System.

$ reboot

Als nächst, fuert d'Befehle hei ënnen fir ënnerschriwwen BCC Packagen z'installéieren:

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys D4284CDD
$ echo "deb https://repo.iovisor.org/apt trusty main" | sudo tee /etc/apt/sources.list.d/iovisor.list
$ sudo apt-get update
$ sudo apt-get install binutils bcc bcc-tools libbcc-examples python-bcc

Installéiert e 4.2+ Kernel vun http://alt.fedoraproject.org/pub/alt/rawhide-kernel-nodebug, wann Äre System eng Versioun méi niddereg huet wéi déi néideg ass. Drënner ass e Beispill vu wéi Dir dat maacht:

$ sudo dnf config-manager --add-repo=http://alt.fedoraproject.org/pub/alt/rawhide-kernel-nodebug/fedora-rawhide-kernel-nodebug.repo
$ sudo dnf update
$ reboot

Duerno füügt de BBC Tools Repository un, aktualiséieren Äre System an installéiert d'Tools andeems Dir déi nächst Serie vu Kommandoen ausféiert:

$ echo -e '[iovisor]\nbaseurl=https://repo.iovisor.org/yum/nightly/f23/$basearch\nenabled=1\ngpgcheck=0' | sudo tee /etc/yum.repos.d/iovisor.repo
$ sudo dnf update
$ sudo dnf install bcc-tools

Dir sollt ufänken mam Upgrade vun Ärem Kernel op d'mannst Versioun 4.3.1-1, duerno d'Packagen hei drënner installéieren mat all Arch Package Manager wéi pacaur, yaourt, cower, etc.

bcc bcc-tools python-bcc python2-bcc

Wéi benotzen ech BCC Tools a Linux Systemer

All BCC Tools ginn ënner /usr/share/bcc/tools Verzeechnes installéiert. Wéi och ëmmer, Dir kënnt se alternativ aus dem BCC Github Repository ënner /Tools lafen, wou se mat enger .py Extensioun ophalen.

$ ls /usr/share/bcc/tools 

argdist       capable     filetop         offwaketime  stackcount  vfscount
bashreadline  cpudist     funccount       old          stacksnoop  vfsstat
biolatency    dcsnoop     funclatency     oomkill      statsnoop   wakeuptime
biosnoop      dcstat      gethostlatency  opensnoop    syncsnoop   xfsdist
biotop        doc         hardirqs        pidpersec    tcpaccept   xfsslower
bitesize      execsnoop   killsnoop       profile      tcpconnect  zfsdist
btrfsdist     ext4dist    mdflush         runqlat      tcpconnlat  zfsslower
btrfsslower   ext4slower  memleak         softirqs     tcpretrans
cachestat     filelife    mysqld_qslower  solisten     tplist
cachetop      fileslower  offcputime      sslsniff     trace

Mir wäerten e puer Beispiller ënnerdecken - Iwwerwaachung allgemeng Linux Systemleistung an Netzwierker.

Loosst eis ufänken all open() Syscalls mat opensnoop ze verfolgen. Dëst erlaabt eis eis ze soen wéi verschidden Uwendungen funktionnéieren andeems se hir Datedateien, Configuratiounsdateien a vill méi identifizéieren:

$ cd /usr/share/bcc/tools 
$ sudo ./opensnoop

PID    COMM               FD ERR PATH
1      systemd            35   0 /proc/self/mountinfo
2797   udisksd            13   0 /proc/self/mountinfo
1      systemd            35   0 /sys/devices/pci0000:00/0000:00:0d.0/ata3/host2/target2:0:0/2:0:0:0/block/sda/sda1/uevent
1      systemd            35   0 /run/udev/data/b8:1
1      systemd            -1   2 /etc/systemd/system/sys-kernel-debug-tracing.mount
1      systemd            -1   2 /run/systemd/system/sys-kernel-debug-tracing.mount
1      systemd            -1   2 /run/systemd/generator/sys-kernel-debug-tracing.mount
1      systemd            -1   2 /usr/local/lib/systemd/system/sys-kernel-debug-tracing.mount
2247   systemd            15   0 /proc/self/mountinfo
1      systemd            -1   2 /lib/systemd/system/sys-kernel-debug-tracing.mount
1      systemd            -1   2 /usr/lib/systemd/system/sys-kernel-debug-tracing.mount
1      systemd            -1   2 /run/systemd/generator.late/sys-kernel-debug-tracing.mount
1      systemd            -1   2 /etc/systemd/system/sys-kernel-debug-tracing.mount.wants
1      systemd            -1   2 /etc/systemd/system/sys-kernel-debug-tracing.mount.requires
1      systemd            -1   2 /run/systemd/system/sys-kernel-debug-tracing.mount.wants
1      systemd            -1   2 /run/systemd/system/sys-kernel-debug-tracing.mount.requires
1      systemd            -1   2 /run/systemd/generator/sys-kernel-debug-tracing.mount.wants
1      systemd            -1   2 /run/systemd/generator/sys-kernel-debug-tracing.mount.requires
1      systemd            -1   2 /usr/local/lib/systemd/system/sys-kernel-debug-tracing.mount.wants
1      systemd            -1   2 /usr/local/lib/systemd/system/sys-kernel-debug-tracing.mount.requires
1      systemd            -1   2 /lib/systemd/system/sys-kernel-debug-tracing.mount.wants
1      systemd            -1   2 /lib/systemd/system/sys-kernel-debug-tracing.mount.requires
1      systemd            -1   2 /usr/lib/systemd/system/sys-kernel-debug-tracing.mount.wants
1      systemd            -1   2 /usr/lib/systemd/system/sys-kernel-debug-tracing.mount.requires
1      systemd            -1   2 /run/systemd/generator.late/sys-kernel-debug-tracing.mount.wants
1      systemd            -1   2 /run/systemd/generator.late/sys-kernel-debug-tracing.mount.requires
1      systemd            -1   2 /etc/systemd/system/sys-kernel-debug-tracing.mount.d
1      systemd            -1   2 /run/systemd/system/sys-kernel-debug-tracing.mount.d
1      systemd            -1   2 /run/systemd/generator/sys-kernel-debug-tracing.mount.d
....

An dësem Beispill weist et eng zesummegefaasst Verdeelung vun der Disk I/O Latenz mat Biolatecncy. Nodeems Dir de Kommando ausgefouert hutt, waart e puer Minutten a dréckt Ctrl-C fir et opzehalen an d'Ausgab ze gesinn.

$ sudo ./biolatecncy

Tracing block device I/O... Hit Ctrl-C to end.
^C
     usecs               : count     distribution
         0 -> 1          : 0        |                                        |
         2 -> 3          : 0        |                                        |
         4 -> 7          : 0        |                                        |
         8 -> 15         : 0        |                                        |
        16 -> 31         : 0        |                                        |
        32 -> 63         : 0        |                                        |
        64 -> 127        : 0        |                                        |
       128 -> 255        : 3        |****************************************|
       256 -> 511        : 3        |****************************************|
       512 -> 1023       : 1        |*************                           |

An dëser Sektioun wäerte mir weidergoen fir nei Prozesser an der Ausféierung ze verfolgen mam execsnoop Tool. All Kéier wann e Prozess vun fork() an exec() syscalls forkéiert gëtt, gëtt et am Ausgang gewisen. Wéi och ëmmer, net all Prozesser ginn ageholl.

$ sudo ./execsnoop

PCOMM            PID    PPID   RET ARGS
gnome-screensho  14882  14881    0 /usr/bin/gnome-screenshot --gapplication-service
systemd-hostnam  14892  1        0 /lib/systemd/systemd-hostnamed
nautilus         14897  2767    -2 /home/tecmint/bin/net usershare info
nautilus         14897  2767    -2 /home/tecmint/.local/bin/net usershare info
nautilus         14897  2767    -2 /usr/local/sbin/net usershare info
nautilus         14897  2767    -2 /usr/local/bin/net usershare info
nautilus         14897  2767    -2 /usr/sbin/net usershare info
nautilus         14897  2767    -2 /usr/bin/net usershare info
nautilus         14897  2767    -2 /sbin/net usershare info
nautilus         14897  2767    -2 /bin/net usershare info
nautilus         14897  2767    -2 /usr/games/net usershare info
nautilus         14897  2767    -2 /usr/local/games/net usershare info
nautilus         14897  2767    -2 /snap/bin/net usershare info
compiz           14899  14898   -2 /home/tecmint/bin/libreoffice --calc
compiz           14899  14898   -2 /home/tecmint/.local/bin/libreoffice --calc
compiz           14899  14898   -2 /usr/local/sbin/libreoffice --calc
compiz           14899  14898   -2 /usr/local/bin/libreoffice --calc
compiz           14899  14898   -2 /usr/sbin/libreoffice --calc
libreoffice      14899  2252     0 /usr/bin/libreoffice --calc
dirname          14902  14899    0 /usr/bin/dirname /usr/bin/libreoffice
basename         14903  14899    0 /usr/bin/basename /usr/bin/libreoffice
...

Benotzt ext4slower fir den ext4 Dateisystem allgemeng Operatiounen ze verfolgen déi méi lues wéi 10ms sinn, fir eis ze hëllefen onofhängeg luesen Disk I/O iwwer de Dateiesystem z'identifizéieren.

Et gëtt nëmmen dës Operatiounen eraus déi e Schwell iwwerschreiden:

$ sudo ./execslower

Tracing ext4 operations slower than 10 ms
TIME     COMM           PID    T BYTES   OFF_KB   LAT(ms) FILENAME
11:59:13 upstart        2252   W 48      1          10.76 dbus.log
11:59:13 gnome-screensh 14993  R 144     0          10.96 settings.ini
11:59:13 gnome-screensh 14993  R 28      0          16.02 gtk.css
11:59:13 gnome-screensh 14993  R 3389    0          18.32 gtk-main.css
11:59:25 rs:main Q:Reg  1826   W 156     60         31.85 syslog
11:59:25 pool           15002  R 208     0          14.98 .xsession-errors
11:59:25 pool           15002  R 644     0          12.28 .ICEauthority
11:59:25 pool           15002  R 220     0          13.38 .bash_logout
11:59:27 dconf-service  2599   S 0       0          22.75 user.BHDKOY
11:59:33 compiz         2548   R 4096    0          19.03 firefox.desktop
11:59:34 compiz         15008  R 128     0          27.52 firefox.sh
11:59:34 firefox        15008  R 128     0          36.48 firefox
11:59:34 zeitgeist-daem 2988   S 0       0          62.23 activity.sqlite-wal
11:59:34 zeitgeist-fts  2996   R 8192    40         15.67 postlist.DB
11:59:34 firefox        15008  R 140     0          18.05 dependentlibs.list
11:59:34 zeitgeist-fts  2996   S 0       0          25.96 position.tmp
11:59:34 firefox        15008  R 4096    0          10.67 libplc4.so
11:59:34 zeitgeist-fts  2996   S 0       0          11.29 termlist.tmp
...

Als nächst, loosst eis eng Zeil pro Disk I/O all Sekonn drécken, mat Detailer wéi Prozess ID, Sektor, Bytes, Latenz ënner anerem mat Biosnoop:

$ sudo ./biosnoop

TIME(s)        COMM           PID    DISK    T  SECTOR    BYTES   LAT(ms)
0.000000000    ?              0              R  -1        8          0.26
2.047897000    ?              0              R  -1        8          0.21
3.280028000    kworker/u4:0   14871  sda     W  30552896  4096       0.24
3.280271000    jbd2/sda1-8    545    sda     W  29757720  12288      0.40
3.298318000    jbd2/sda1-8    545    sda     W  29757744  4096       0.14
4.096084000    ?              0              R  -1        8          0.27
6.143977000    ?              0              R  -1        8          0.27
8.192006000    ?              0              R  -1        8          0.26
8.303938000    kworker/u4:2   15084  sda     W  12586584  4096       0.14
8.303965000    kworker/u4:2   15084  sda     W  25174736  4096       0.14
10.239961000   ?              0              R  -1        8          0.26
12.292057000   ?              0              R  -1        8          0.20
14.335990000   ?              0              R  -1        8          0.26
16.383798000   ?              0              R  -1        8          0.17
...

Duerno gi mir weider fir Cachestat ze benotzen fir all Sekonn eng Zeil vu resuméierte Statistiken aus dem Systemcache ze weisen. Dëst erméiglecht de System Tuning Operatiounen andeems Dir e klengen Cache Hit Verhältnis an héijen Taux vu Missen weist:

$ sudo ./cachestat

 HITS   MISSES  DIRTIES  READ_HIT% WRITE_HIT%   BUFFERS_MB  CACHED_MB
       0        0        0       0.0%       0.0%           19        544
       4        4        2      25.0%      25.0%           19        544
    1321       33        4      97.3%       2.3%           19        545
    7476        0        2     100.0%       0.0%           19        545
    6228       15        2      99.7%       0.2%           19        545
       0        0        0       0.0%       0.0%           19        545
    7391      253      108      95.3%       2.7%           19        545
   33608     5382       28      86.1%      13.8%           19        567
   25098       37       36      99.7%       0.0%           19        566
   17624      239      416      96.3%       0.5%           19        520
...

Iwwerwaachung vun TCP Verbindungen all Sekonn mat tcpconnect. Säin Output enthält Quell- an Destinatiounsadress, a Portnummer. Dëst Tool ass nëtzlech fir onerwaart TCP Verbindungen ze verfolgen, an doduerch hëlleft eis Ineffizienz an Applikatiounskonfiguratiounen oder en Ugräifer z'identifizéieren.

$ sudo ./tcpconnect

PID    COMM         IP SADDR            DADDR            DPORT
15272  Socket Threa 4  10.0.2.15        91.189.89.240    80  
15272  Socket Threa 4  10.0.2.15        216.58.199.142   443 
15272  Socket Threa 4  10.0.2.15        216.58.199.142   80  
15272  Socket Threa 4  10.0.2.15        216.58.199.174   443 
15272  Socket Threa 4  10.0.2.15        54.200.62.216    443 
15272  Socket Threa 4  10.0.2.15        54.200.62.216    443 
15272  Socket Threa 4  10.0.2.15        117.18.237.29    80  
15272  Socket Threa 4  10.0.2.15        216.58.199.142   80  
15272  Socket Threa 4  10.0.2.15        216.58.199.131   80  
15272  Socket Threa 4  10.0.2.15        216.58.199.131   443 
15272  Socket Threa 4  10.0.2.15        52.222.135.52    443 
15272  Socket Threa 4  10.0.2.15        216.58.199.131   443 
15272  Socket Threa 4  10.0.2.15        54.200.62.216    443 
15272  Socket Threa 4  10.0.2.15        54.200.62.216    443 
15272  Socket Threa 4  10.0.2.15        216.58.199.132   443 
15272  Socket Threa 4  10.0.2.15        216.58.199.131   443 
15272  Socket Threa 4  10.0.2.15        216.58.199.142   443 
15272  Socket Threa 4  10.0.2.15        54.69.17.198     443 
15272  Socket Threa 4  10.0.2.15        54.69.17.198     443 
...

All d'Tools uewendriwwer kënnen och mat verschiddenen Optiounen benotzt ginn, fir d'Hëllefsäit fir e bestëmmten Tool z'aktivéieren, benotzt d'Optioun -h, zum Beispill:

$ sudo ./tcpconnect -h

usage: tcpconnect [-h] [-t] [-p PID] [-P PORT]

Trace TCP connects

optional arguments:
  -h, --help            show this help message and exit
  -t, --timestamp       include timestamp on output
  -p PID, --pid PID     trace this PID only
  -P PORT, --port PORT  comma-separated list of destination ports to trace.

examples:
    ./tcpconnect           # trace all TCP connect()s
    ./tcpconnect -t        # include timestamps
    ./tcpconnect -p 181    # only trace PID 181
    ./tcpconnect -P 80     # only trace port 80
    ./tcpconnect -P 80,81  # only trace port 80 and 81

Fir gescheitert exec()s syscalls ze verfolgen, benotzt d'-x Optioun mat opensnoop wéi hei ënnen:

$ sudo ./opensnoop -x

PID    COMM               FD ERR PATH
15414  pool               -1   2 /home/.hidden
15415  (ostnamed)         -1   2 /sys/fs/cgroup/cpu/system.slice/systemd-hostnamed.service/cgroup.procs
15415  (ostnamed)         -1   2 /sys/fs/cgroup/cpu/system.slice/cgroup.procs
15415  (ostnamed)         -1   2 /sys/fs/cgroup/cpuacct/system.slice/systemd-hostnamed.service/cgroup.procs
15415  (ostnamed)         -1   2 /sys/fs/cgroup/cpuacct/system.slice/cgroup.procs
15415  (ostnamed)         -1   2 /sys/fs/cgroup/blkio/system.slice/systemd-hostnamed.service/cgroup.procs
15415  (ostnamed)         -1   2 /sys/fs/cgroup/blkio/system.slice/cgroup.procs
15415  (ostnamed)         -1   2 /sys/fs/cgroup/memory/system.slice/systemd-hostnamed.service/cgroup.procs
15415  (ostnamed)         -1   2 /sys/fs/cgroup/memory/system.slice/cgroup.procs
15415  (ostnamed)         -1   2 /sys/fs/cgroup/pids/system.slice/systemd-hostnamed.service/cgroup.procs
2548   compiz             -1   2 
15416  systemd-cgroups    -1   2 /run/systemd/container
15416  systemd-cgroups    -1   2 /sys/fs/kdbus/0-system/bus
15415  systemd-hostnam    -1   2 /run/systemd/container
15415  systemd-hostnam    -1  13 /proc/1/environ
15415  systemd-hostnam    -1   2 /sys/fs/kdbus/0-system/bus
1695   dbus-daemon        -1   2 /run/systemd/users/0
15415  systemd-hostnam    -1   2 /etc/machine-info
15414  pool               -1   2 /home/tecmint/.hidden
15414  pool               -1   2 /home/tecmint/Binary/.hidden
2599   dconf-service      -1   2 /run/user/1000/dconf/user
...

Dat lescht Beispill hei ënnen weist wéi een eng personaliséiert Spueroperatioun ausféiert. Mir verfollegen e bestëmmte Prozess mat sengem PID.

Als éischt bestëmmen d'Prozess ID:

$ pidof firefox

15437

Méi spéit, fuert de personaliséierten Trace Kommando. Am Kommando hei drënner: -p spezifizéiert d'Prozess ID, do_sys_open() ass eng Kernelfunktioun déi dynamesch verfollegt gëtt mat sengem zweeten Argument als String.

$ sudo ./trace -p 4095 'do_sys_open "%s", arg2'

TIME     PID    COMM         FUNC             -
12:17:14 15437  firefox      do_sys_open      /run/user/1000/dconf/user
12:17:14 15437  firefox      do_sys_open      /home/tecmint/.config/dconf/user
12:18:07 15437  firefox      do_sys_open      /run/user/1000/dconf/user
12:18:07 15437  firefox      do_sys_open      /home/tecmint/.config/dconf/user
12:18:13 15437  firefox      do_sys_open      /sys/devices/system/cpu/present
12:18:13 15437  firefox      do_sys_open      /dev/urandom
12:18:13 15437  firefox      do_sys_open      /dev/urandom
12:18:14 15437  firefox      do_sys_open      /usr/share/fonts/truetype/liberation/LiberationSans-Italic.ttf
12:18:14 15437  firefox      do_sys_open      /usr/share/fonts/truetype/liberation/LiberationSans-Italic.ttf
12:18:14 15437  firefox      do_sys_open      /usr/share/fonts/truetype/liberation/LiberationSans-Italic.ttf
12:18:14 15437  firefox      do_sys_open      /sys/devices/system/cpu/present
12:18:14 15437  firefox      do_sys_open      /dev/urandom
12:18:14 15437  firefox      do_sys_open      /dev/urandom
12:18:14 15437  firefox      do_sys_open      /dev/urandom
12:18:14 15437  firefox      do_sys_open      /dev/urandom
12:18:15 15437  firefox      do_sys_open      /sys/devices/system/cpu/present
12:18:15 15437  firefox      do_sys_open      /dev/urandom
12:18:15 15437  firefox      do_sys_open      /dev/urandom
12:18:15 15437  firefox      do_sys_open      /sys/devices/system/cpu/present
12:18:15 15437  firefox      do_sys_open      /dev/urandom
12:18:15 15437  firefox      do_sys_open      /dev/urandom
....

Resumé

BCC ass e mächtegen an einfach ze benotzen Toolkit fir verschidde Systemadministratiounsaufgaben wéi Tracing System Performance Monitoring, Tracing Block Device I/O, TCP Funktiounen, Dateisystem Operatiounen, Syscalls, Node.js Sonden, plus vill méi. Wichteg ass et mat e puer Beispilldateien a Mann Säiten fir d'Tools fir Iech ze guidéieren, wat et userfrëndlech an zouverlässeg mécht.

Lescht awer net zulescht kënnt Dir bei eis zréckkommen andeems Dir Är Gedanken iwwer dëst Thema deelt, Froen stellt, nëtzlech Virschléi oder all konstruktiv Feedback iwwer d'Kommentarsektioun hei drënner mécht.

Fir méi Informatioun a Gebrauch besicht: https://iovisor.github.io/bcc/