BCC - Awọn irinṣẹ Ṣiṣayẹwo Dynamic fun Iboju Iṣẹ iṣe Linux, Nẹtiwọọki ati Diẹ sii


BCC (Gbigba Gbigbapọ BPF) jẹ ipilẹ agbara ti awọn irinṣẹ ti o yẹ ati awọn faili apẹẹrẹ fun ṣiṣẹda wiwa kakiri ekuro ati awọn eto ifọwọyi. O nlo BPF ti o gbooro sii (Awọn Ajọ Ajọ Berkeley Packet), ti a kọkọ mọ ni eBPF eyiti o jẹ ọkan ninu awọn ẹya tuntun ni Linux 3.15.

Ni iṣe, ọpọlọpọ awọn paati ti BCC lo lo nilo Linux 4.1 tabi loke, ati awọn ẹya akiyesi rẹ pẹlu:

  1. Ko beere fun modulu kernel ẹnikẹta, nitori gbogbo awọn irinṣẹ ṣiṣẹ ti o da lori BPF eyiti a ṣe sinu ekuro ati BCC nlo awọn ẹya ti a fi kun ni Linux 4.x jara.
  2. Jeki akiyesi ti ipaniyan sọfitiwia.
  3. Awọn ajọpọ ti awọn irinṣẹ onínọmbà pupọ pẹlu awọn faili apẹẹrẹ ati awọn oju-iwe eniyan.

Ti o dara julọ ti o baamu fun awọn olumulo Lainos ti ilọsiwaju, BCC jẹ ki o rọrun lati kọ awọn eto BPF nipa lilo ohun-elo ekuro ni C, ati awọn opin-iwaju ni Python ati lua. Ni afikun, o ṣe atilẹyin awọn iṣẹ-ṣiṣe lọpọlọpọ gẹgẹbi iṣiro iṣẹ, ibojuwo, iṣakoso ijabọ nẹtiwọọki pẹlu ọpọlọpọ diẹ sii.

Bii O ṣe le Fi BCC sinu Awọn Ẹrọ Lainos

Ranti pe BCC nlo awọn ẹya ti a ṣafikun ninu ẹya ekuro Linux 4.1 tabi loke, ati bi ibeere kan, ekuro yẹ ki o ti ṣajọ pẹlu awọn asia ti a ṣeto ni isalẹ:

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

Lati ṣayẹwo awọn asia ekuro rẹ, wo faili /proc/config.gz tabi ṣiṣe awọn aṣẹ bi ninu awọn apẹẹrẹ isalẹ:

[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

Lẹhin ti o ṣayẹwo awọn asia ekuro, o to akoko lati fi awọn irinṣẹ BCC sori ẹrọ ni awọn eto Linux.

Awọn idii alẹ nikan ni a ṣẹda fun Ubuntu 16.04, ṣugbọn awọn itọnisọna fifi sori ẹrọ jẹ taara taara. Ko si iwulo igbesoke ekuro tabi ṣajọ lati orisun.

$ 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

Bẹrẹ nipa fifi ekuro Linux kan 4.3+ sii, lati http://kernel.ubuntu.com/~kernel-ppa/mainline.

Bi apẹẹrẹ, kọ akọọlẹ ikarahun kekere “bcc-install.sh” pẹlu akoonu ti o wa ni isalẹ.

Akiyesi: ṣe imudojuiwọn iye PREFIX si ọjọ tuntun, ati tun lọ kiri lori awọn faili ni URL PREFIX ti a pese lati gba iye REL gangan, rọpo wọn ninu iwe afọwọkọ naa.

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

Fipamọ faili naa ki o jade. Jẹ ki o ṣiṣẹ, lẹhinna ṣiṣe bi o ti han:

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

Lẹhinna, tun atunbere eto rẹ.

$ reboot

Nigbamii, ṣiṣe awọn aṣẹ ni isalẹ lati fi awọn idii BCC ti a fowo sii:

$ 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

Fi ekuro 4.2+ sii lati http://alt.fedoraproject.org/pub/alt/rawhide-kernel-nodebug, ti eto rẹ ba ni ẹya ti o kere ju ohun ti o nilo lọ. Ni isalẹ jẹ apẹẹrẹ ti bii o ṣe le ṣe:

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

Lẹhin eyini, ṣafikun ibi ipamọ awọn irinṣẹ BBC, ṣe imudojuiwọn eto rẹ ki o fi awọn irinṣẹ sii nipa ṣiṣe awọn atẹle awọn ofin atẹle:

$ 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

O yẹ ki o bẹrẹ nipa igbesoke ekuro rẹ si o kere ju ẹya 4.3.1-1, lẹhinna fi awọn idii sii ni isalẹ ni lilo eyikeyi awọn alakoso package Arch gẹgẹbi pacaur, yaourt, cower, abbl.

bcc bcc-tools python-bcc python2-bcc

Bii O ṣe le Lo Awọn irinṣẹ BCC ni Awọn Ẹrọ Lainos

Gbogbo awọn irinṣẹ BCC ti fi sii labẹ /usr/share/bcc/irinṣẹ itọsọna. Sibẹsibẹ, o le ni ọna miiran ṣiṣe wọn lati ibi ipamọ Github BCC labẹ /irinṣẹ nibiti wọn pari pẹlu itẹsiwaju .py .

$ 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

A yoo bo awọn apẹẹrẹ diẹ labẹ - mimojuto gbogbogbo eto Linux ati nẹtiwọọki.

Jẹ ki a bẹrẹ nipa titele gbogbo ṣii() syscalls nipa lilo unlocknoop. Eyi jẹ ki a sọ fun wa bi ọpọlọpọ awọn ohun elo ṣe n ṣiṣẹ nipa idamo awọn faili data wọn, awọn faili atunto ati ọpọlọpọ diẹ sii:

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

Ninu apẹẹrẹ yii, o fihan pinpin kaakiri ti idaduro I/O disk nipa lilo biolatecncy. Lẹhin ṣiṣe pipaṣẹ naa, duro fun iṣẹju diẹ ki o lu Konturolu-C lati pari ati wo iṣẹjade.

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

Ni apakan yii, a yoo lọ si wiwa awọn ilana tuntun ni ipaniyan nipa lilo ohun elo execsnoop. Nigbakugba ti ilana kan ba jẹ titiipa nipasẹ orita() ati exec() syscalls, o han ninu iṣẹjade. Sibẹsibẹ, kii ṣe gbogbo awọn ilana ni o gba.

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

Lilo ext4slower lati wa kakiri awọn iṣẹ faili faili ext4 wọpọ ti o lọra ju 10ms, lati ṣe iranlọwọ fun wa idanimọ ominira Fa fifalẹ I/O nipasẹ eto faili.

O n ṣe awọn iṣẹ ṣiṣe wọnyẹn ti o kọja ẹnu-ọna nikan:

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

Ni atẹle, jẹ ki a ṣafọ sinu titẹ ila kan fun I/O ni iṣẹju-aaya kọọkan, pẹlu awọn alaye gẹgẹbi ID ilana, eka, awọn baiti, lairi laarin awọn miiran nipa lilo 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
...

Lẹhinna, a tẹsiwaju si lilo cachestat lati ṣe afihan ila kan ti awọn iṣiro atokọ lati kaṣe eto ni gbogbo igba keji. Eyi n jẹ ki o ṣiṣẹ fun awọn iṣẹ tuning eto nipa titọka ipin lu kaṣe kekere ati iwọn giga ti awọn padanu:

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

Mimojuto awọn isopọ TCP ni gbogbo iṣẹju keji nipa lilo tcpconnect. Ijade rẹ pẹlu orisun ati adirẹsi adirẹsi, ati nọmba ibudo. Ọpa yii wulo fun wiwa awọn isopọ TCP airotẹlẹ, nitorinaa ṣe iranlọwọ fun wa lati ṣe idanimọ awọn ailagbara ninu awọn atunto ohun elo tabi ikọlu kan.

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

Gbogbo awọn irinṣẹ ti o wa loke tun le ṣee lo pẹlu awọn aṣayan pupọ, lati jẹki oju-iwe iranlọwọ fun ohun elo ti a fun, ṣe lilo aṣayan -h , fun apẹẹrẹ:

$ 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

Lati wa kakiri awọn ibi-ibi-nla sys ti o kuna, lo aṣayan -x pẹlu opennoop bi isalẹ:

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

Apẹẹrẹ ti o kẹhin ni isalẹ ṣe afihan bi a ṣe le ṣe iṣiṣẹ kakiri aṣa. A n ṣe awari ilana kan pato nipa lilo PID rẹ.

Akọkọ pinnu ID ilana:

$ pidof firefox

15437

Nigbamii, ṣiṣe aṣẹ itọpa aṣa. Ninu aṣẹ ti o wa ni isalẹ: -p ṣe afihan ID ilana, do_sys_open() jẹ iṣẹ ekuro kan ti o wa kakiri ni agbara pẹlu ariyanjiyan keji rẹ bi okun.

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

Akopọ

BCC jẹ ohun elo irinṣẹ ti o lagbara ati irọrun-lati-lo fun ọpọlọpọ awọn iṣẹ ṣiṣe Isakoso eto bii ibojuwo ṣiṣe ṣiṣe eto, ẹrọ I/O wiwa kakiri ẹrọ, awọn iṣẹ TCP, awọn iṣiṣẹ eto faili, awọn ibi syscalls, awọn iwadii Node.js, pẹlu ọpọlọpọ diẹ sii. Ni pataki, o gbe wọle pẹlu ọpọlọpọ awọn faili apẹẹrẹ ati awọn oju-iwe eniyan fun awọn irinṣẹ lati ṣe itọsọna fun ọ, jẹ ki o jẹ ọrẹ olumulo ati igbẹkẹle.

Ni ikẹhin ṣugbọn ko kere ju, o le pada si ọdọ wa nipa pinpin awọn ero rẹ nipa koko-ọrọ, beere awọn ibeere, ṣe awọn imọran to wulo tabi eyikeyi esi todara nipasẹ abala asọye ni isalẹ.

Fun alaye diẹ sii ati ibewo ilo: https://iovisor.github.io/bcc/