BCC - Dynaamiset jäljitystyökalut Linux-suorituskyvyn valvontaan, verkkokäyttöön ja muuhun


BCC (BPF Compiler Collection) on tehokas joukko sopivia työkaluja ja esimerkkitiedostoja kekseliäiden ytimen jäljitys- ja käsittelyohjelmien luomiseen. Se käyttää laajennettua BPF:ää (Berkeley Packet Filters), joka tunnettiin alun perin nimellä eBPF, joka oli yksi Linux 3.15:n uusista ominaisuuksista. vahva>.

Käytännössä suurin osa BCC:n käyttämistä komponenteista vaatii Linux 4.1:n tai uudemman, ja sen huomionarvoisia ominaisuuksia ovat:

  1. Ei vaadi kolmannen osapuolen ydinmoduulia, koska kaikki työkalut toimivat BPF:n perusteella, joka on sisäänrakennettu ytimeen ja BCC käyttää Linux 4.x -sarjaan lisättyjä ominaisuuksia.
  2. Mahdollistaa ohjelmiston suorituksen havainnoinnin.
  3. Sisältää useita suorituskyvyn analysointityökaluja esimerkkitiedostoineen ja man-sivuineen.

Suositeltu luku: 20 komentorivityökalua Linuxin suorituskyvyn seurantaan

Parhaiten edistyneille Linux-käyttäjille sopiva BCC tekee BPF-ohjelmien kirjoittamisesta helppoa käyttämällä ytimen instrumentointia C:ssä ja käyttöliittymiä :ssa. Python ja lua. Lisäksi se tukee useita tehtäviä, kuten suorituskyvyn analysointia, valvontaa, verkkoliikenteen ohjausta ja paljon muuta.

Kuinka asentaa BCC Linux-järjestelmiin

Muista, että BCC käyttää ominaisuuksia, jotka on lisätty Linux-ytimen versioon 4.1 tai uudempaan, ja vaatimuksena ydin olisi pitänyt olla käännetty alla olevilla lipuilla:

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

Voit tarkistaa ytimen liput tarkastelemalla tiedostoa /proc/config.gz tai suorittamalla komennot alla olevien esimerkkien mukaisesti:

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

Kun ytimen liput on tarkistettu, on aika asentaa BCC-työkalut Linux-järjestelmiin.

Ubuntussa 16.04

Vain yöpaketit on luotu Ubuntu 16.04:lle, mutta asennusohjeet ovat hyvin yksinkertaisia. Ei tarvitse päivittää ydintä tai kääntää sitä lähdekoodista.

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

Ubuntussa 14.04

Aloita asentamalla 4.3+ Linux-ydin osoitteesta http://kernel.ubuntu.com/~kernel-ppa/mainline.

Kirjoita esimerkiksi pieni komentosarja "bcc-install.sh", jonka sisältö on alla.

Huomaa: päivitä PREFIX-arvo viimeisimpään päivämäärään ja selaa myös tiedostoja PREFIX-URL-osoitteessa. saada todellinen REL-arvo, korvaa ne komentotulkkikomentosarjassa.

#!/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

Tallenna tiedosto ja poistu. Tee siitä suoritettava ja suorita se kuvan mukaisesti:

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

Tämän jälkeen käynnistä järjestelmä uudelleen.

reboot

Suorita seuraavaksi alla olevat komennot asentaaksesi allekirjoitetut BCC-paketit:

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

Fedorassa 24-23

Asenna 4.2+-ydin osoitteesta http://alt.fedoraproject.org/pub/alt/rawhide-kernel-nodebug, jos järjestelmässäsi on vaadittua vanhempi versio. Alla on esimerkki siitä, kuinka se tehdään:

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

Lisää sen jälkeen BBC-työkalujen arkisto, päivitä järjestelmäsi ja asenna työkalut suorittamalla seuraava komentosarja:

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

Arch Linuxissa – AUR

Aloita päivittämällä ytimesi vähintään versioon 4.3.1-1 ja asenna sitten alla olevat paketit millä tahansa Arch-paketinhallinnalla, kuten pacaur, yaourt<., cower jne.

bcc bcc-tools python-bcc python2-bcc

Kuinka käyttää BCC-työkaluja Linux-järjestelmissä

Kaikki BCC-työkalut on asennettu hakemistoon /usr/share/bcc/tools. Voit kuitenkin vaihtoehtoisesti suorittaa ne BCC Github -arkistosta kohdasta /tools, jossa ne päättyvät .py-laajennukseen.

$ 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

Käsittelemme muutamia esimerkkejä kohdassa – yleisen Linux-järjestelmän suorituskyvyn ja verkottumisen seuranta.

Trace open() syscalls

Aloitetaan jäljittämällä kaikki open()-sysscolles käyttämällä opensnooppia. Tämän avulla voimme kertoa meille, kuinka eri sovellukset toimivat tunnistamalla niiden datatiedostot, konfigurointitiedostot ja monet muut:

$ 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
....

Tee yhteenveto Estä laitteen I/O-viive

Tässä esimerkissä se näyttää yhteenvedon levyn I/O-viiveen jakautumisesta biolatenssin avulla. Kun olet suorittanut komennon, odota muutama minuutti ja paina Ctrl-C lopettaaksesi sen ja tarkastellaksesi tulosta.

$ 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        |*************                           |

Seuraa uusia prosesseja exec() Syscalls -ohjelman avulla

Tässä osiossa siirrymme uusien suoritettavien prosessien jäljittämiseen execsnoop-työkalulla. Joka kerta, kun fork()- ja exec()-sysscall- ja exec()-syscall-toiminnot haarautuvat prosessiin, se näytetään tulosteessa. Kaikkia prosesseja ei kuitenkaan tallenneta.

$ 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
...

Seuraa hitaita ext4-toimintoja

ext4slower avulla jäljittääksesi ext4-tiedostojärjestelmän yleiset toiminnot, jotka ovat hitaampia kuin 10 ms, jotta voimme tunnistaa itsenäisesti hitaan levyn I/O:n tiedoston kautta. järjestelmä.

Suositeltu luku: 13 Linuxin suorituskyvyn valvontatyökalua

Se tulostaa vain ne toiminnot, jotka ylittävät kynnyksen:

$ 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
...

Trace Block Device I/O PID:llä ja latenssilla

Sukellaan seuraavaksi rivin tulostamiseen levyä kohden I/O joka sekunti ja yksityiskohtia, kuten prosessitunnus, sektori, tavut, latenssi, muun muassa biosnoopin avulla:

$ 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
...

Jäljityssivun välimuistin osuma/puute-suhde

Tämän jälkeen siirrymme käyttämään cachestatia, joka näyttää yhden rivin yhteenvetotilastoja järjestelmän välimuistista joka sekunti. Tämä mahdollistaa järjestelmän viritystoiminnot osoittamalla alhaisen välimuistin osumasuhteen ja suuren puuttumisasteen:

$ 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
...

Jäljitä aktiiviset TCP-yhteydet

Valvotaan TCP-yhteyksiä joka sekunti tcpconnectin avulla. Sen lähtö sisältää lähde- ja kohdeosoitteen sekä portin numeron. Tämä työkalu on hyödyllinen odottamattomien TCP-yhteyksien jäljittämisessä, mikä auttaa meitä tunnistamaan sovelluskokoonpanojen tehottomuudet tai hyökkääjän.

$ 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 
...

Kaikkia yllä olevia työkaluja voidaan käyttää myös eri vaihtoehtojen kanssa. Ota ohjesivu käyttöön tietylle työkalulle käyttämällä -h-vaihtoehtoa, esimerkiksi:

$ 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

Trace Failed exec()s Syscalls

Jäljittääksesi epäonnistuneet exec()s-syscalls, käytä -x-vaihtoehtoa opensnoopilla seuraavasti:

$ 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
...

Seuraa tiettyjä prosessitoimintoja

Alla oleva viimeinen esimerkki osoittaa, kuinka mukautettu jäljitystoiminto suoritetaan. Seuraamme tiettyä prosessia käyttämällä sen PID-tunnusta.

Suositeltu luku: Netdata – reaaliaikainen suorituskyvyn valvontatyökalu Linuxille

Määritä ensin prosessin tunnus:

$ pidof firefox

15437

Suorita myöhemmin mukautettu trace-komento. Alla olevassa komennossa: -p määrittää prosessin tunnuksen, do_sys_open() on ytimen funktio, joka jäljitetään dynaamisesti ja sisältää sen toisen argumentin merkkijonona.

$ 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
....

Yhteenveto

BCC on tehokas ja helppokäyttöinen työkalupakki erilaisiin järjestelmänhallinnan tehtäviin, kuten järjestelmän suorituskyvyn seurantaan, lohkolaitteiden I/O-seurantaan, TCP-toimintoihin, tiedostojärjestelmän toimintoihin, syscalleihin, Node.js-koetuksiin. , plus paljon muuta. Tärkeää on, että sen mukana toimitetaan useita esimerkkitiedostoja ja man-sivuja työkalujen opastamiseksi, mikä tekee siitä käyttäjäystävällisen ja luotettavan.

Viimeisenä mutta ei vähäisimpänä, voit ottaa meihin yhteyttä jakamalla ajatuksesi aiheesta, esittämällä kysymyksiä, antamalla hyödyllisiä ehdotuksia tai rakentavaa palautetta alla olevan kommenttiosion kautta.

Lisätietoja ja käyttö on saatavilla osoitteessa https://iovisor.github.io/bcc/