BCC – dinaminiai sekimo įrankiai, skirti Linux našumo stebėjimui, tinklų kūrimui ir kt
BCC (BPF kompiliatorių kolekcija) yra galingas tinkamų įrankių ir pavyzdžių failų rinkinys, skirtas kurti išradingas branduolio sekimo ir manipuliavimo programas. Jame naudojamas išplėstinis BPF (Berkeley paketų filtras), iš pradžių žinomas kaip eBPF, kuris buvo viena iš naujų Linux 3.15 funkcijų..
Praktiškai daugumai BCC naudojamų komponentų reikalinga Linux 4.1 arba naujesnė versija, o verta paminėti:
- Nereikia jokio trečiosios šalies branduolio modulio, nes visi įrankiai veikia remiantis BPF, kuris yra įmontuotas branduolyje, o BCC naudoja funkcijas, pridėtas prie Linux 4.x serijos.
- Leidžia stebėti programinės įrangos vykdymą.
- Jį sudaro keli našumo analizės įrankiai su pavyzdiniais failais ir žinyno puslapiais.
Siūlomas skaitymas: 20 komandų eilutės įrankių, skirtų „Linux“ našumui stebėti
Geriausiai tinka pažengusiems Linux naudotojams, BCC leidžia lengvai rašyti BPF programas naudojant branduolio instrumentus C ir sąsajas . Python ir lua. Be to, ji palaiko daugybę užduočių, tokių kaip našumo analizė, stebėjimas, tinklo srauto valdymas ir daug daugiau.
Kaip įdiegti BCC Linux sistemose
Atminkite, kad BCC naudoja funkcijas, pridėtas prie „Linux“ branduolio versijos 4.1 ar naujesnės versijos, todėl branduolys turėjo būti sudarytas naudojant toliau nurodytas vėliavėles:
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
Norėdami patikrinti branduolio vėliavėles, peržiūrėkite failą /proc/config.gz arba vykdykite komandas, kaip nurodyta toliau pateiktuose pavyzdžiuose:
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
Patvirtinus branduolio vėliavėles, laikas įdiegti BCC įrankius Linux sistemose.
Ubuntu 16.04
Tik naktiniai paketai yra sukurti Ubuntu 16.04, tačiau diegimo instrukcijos yra labai paprastos. Nereikia atnaujinti branduolio arba kompiliuoti jį iš šaltinio.
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
Ubuntu 14.04
Pradėkite diegdami 4.3+ Linux branduolį iš http://kernel.ubuntu.com/~kernel-ppa/mainline.
Pavyzdžiui, parašykite nedidelį apvalkalo scenarijų „bcc-install.sh“ su toliau pateiktu turiniu.
Pastaba: atnaujinkite PREFIX reikšmę iki paskutinės datos, taip pat naršykite failus PREFIX URL, pateikto gauti tikrąją REL reikšmę, pakeiskite jas apvalkalo scenarijuje.
#!/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
Išsaugokite failą ir išeikite. Padarykite jį vykdomąjį, tada paleiskite, kaip parodyta:
chmod +x bcc-install.sh
sh bcc-install.sh
Po to iš naujo paleiskite sistemą.
reboot
Tada vykdykite toliau pateiktas komandas, kad įdiegtumėte pasirašytus BCC paketus:
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
„Fedora“ 24–23
Įdiekite 4.2+ branduolį iš http://alt.fedoraproject.org/pub/alt/rawhide-kernel-nodebug, jei jūsų sistemos versija yra senesnė nei reikalaujama. Žemiau pateikiamas pavyzdys, kaip tai padaryti:
sudo dnf config-manager --add-repo=http://alt.fedoraproject.org/pub/alt/rawhide-kernel-nodebug/fedora-rawhide-kernel-nodebug.repo
sudo dnf update
reboot
Po to pridėkite BBC įrankių saugyklą, atnaujinkite sistemą ir įdiekite įrankius vykdydami kitą komandų seriją:
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 Linux“ – AUR
Turėtumėte pradėti nuo branduolio atnaujinimo bent iki 4.3.1-1 versijos, tada įdiekite toliau pateiktus paketus naudodami bet kokias Arch paketų tvarkykles, pvz., pacaur, yaourt<, apdangalas ir kt.
bcc bcc-tools python-bcc python2-bcc
Kaip naudoti BCC įrankius Linux sistemose
Visi BCC įrankiai įdiegti /usr/share/bcc/tools
kataloge. Tačiau galite juos paleisti iš BCC Github saugyklos skiltyje /tools
, kur jie baigiasi plėtiniu .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
Mes apžvelgsime kelis pavyzdžius skyriuje „Linux“ sistemos veikimo ir tinklo stebėjimas.
Trace open() syscalls
Pradėkime atsekdami visus open()
syscall naudojant opensnoop. Tai leidžia mums pasakyti, kaip veikia įvairios programos, identifikuodami jų duomenų failus, konfigūracijos failus ir daug daugiau:
$ 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
....
Apibendrinkite blokuoti įrenginio įvesties/išvesties delsą
Šiame pavyzdyje rodomas apibendrintas disko įvesties/išvesties delsos pasiskirstymas naudojant biolatecnciją. Įvykdę komandą palaukite kelias minutes ir paspauskite Ctrl-C, kad užbaigtumėte komandą ir peržiūrėtumėte išvestį.
$ 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 |************* |
Sekite naujus procesus naudodami exec() Syscalls
Šiame skyriuje pereisime prie naujų vykdomų procesų sekimo naudojant execsnoop įrankį. Kiekvieną kartą, kai procesas sujungiamas naudojant fork()
ir exec()
syscall, jis rodomas išvestyje. Tačiau ne visi procesai užfiksuoti.
$ 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
...
Sekite lėtas ext4 operacijas
Naudojant ext4slower, kad būtų galima atsekti ext4 failų sistemos įprastas operacijas, kurios yra lėtesnės nei 10 ms, kad padėtų mums savarankiškai nustatyti lėtą disko įvestį/išvestį naudojant failą sistema.
Siūlomas skaitymas: 13 „Linux“ našumo stebėjimo įrankių
Išveda tik tas operacijas, kurios viršija slenkstį:
$ 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 su PID ir delsa
Toliau pasinerkime į eilutės spausdinimą kiekviename disko įvesties/išvesties diske kiekvieną sekundę su tokia informacija kaip proceso ID, sektorius, baitai, delsa, be kita ko, naudojant 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
...
Sekimo puslapio talpyklos pataikymo/praleisto santykis
Vėliau pradedame naudoti cachestat, kad kas sekundę būtų rodoma viena apibendrintos statistikos eilutė iš sistemos talpyklos. Tai leidžia atlikti sistemos derinimo operacijas, nurodant mažą talpyklos pataikymo santykį ir didelį praleidimų skaičių:
$ 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
...
Sekite aktyvius TCP ryšius
Stebėti TCP ryšius kas sekundę naudojant tcpconnect. Jo išvestyje yra šaltinio ir paskirties adresas bei prievado numeris. Šis įrankis naudingas norint atsekti netikėtus TCP ryšius, taip padedant nustatyti programos konfigūracijų neveiksmingumą arba užpuoliką.
$ 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
...
Visus aukščiau nurodytus įrankius taip pat galima naudoti su įvairiomis parinktimis, kad įgalintumėte tam tikro įrankio pagalbos puslapį, naudokite parinktį -h
, pavyzdžiui:
$ 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
Norėdami atsekti nepavykusius exec()s sysscalls, naudokite parinktį -x
su opensnoop, kaip nurodyta toliau:
$ 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
...
Sekite tam tikras proceso funkcijas
Paskutiniame toliau pateiktame pavyzdyje parodyta, kaip atlikti pasirinktinę sekimo operaciją. Atsekame tam tikrą procesą naudodami jo PID.
Siūlomas skaitymas: „Netdata“ – „Linux“ skirtas našumo stebėjimo realiuoju laiku įrankis
Pirmiausia nustatykite proceso ID:
$ pidof firefox
15437
Vėliau paleiskite tinkintą komandą trace. Toliau pateiktoje komandoje: -p
nurodo proceso ID, do_sys_open()
yra branduolio funkcija, kuri atsekama dinamiškai, įskaitant antrąjį argumentą kaip eilutę.
$ 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
....
Santrauka
BCC yra galingas ir paprastas naudoti įrankių rinkinys, skirtas įvairioms sistemos administravimo užduotims, pvz., sekti sistemos našumą, sekti bloko įrenginio I/O, TCP funkcijas, failų sistemos operacijas, syscall, Node.js zondus. , ir daug daugiau. Svarbu tai, kad jis pateikiamas kartu su keliais pavyzdiniais failais ir žinyno puslapiais, kurie padės jums padėti, todėl jis yra patogus ir patikimas.
Paskutinis, bet ne mažiau svarbus dalykas – toliau esančiame komentarų skyriuje galite susisiekti su mumis pasidalindami savo mintimis apie temą, užduodami klausimus, pateikdami naudingų pasiūlymų ar bet kokių konstruktyvių atsiliepimų.
Norėdami gauti daugiau informacijos ir naudojimo, apsilankykite: https://iovisor.github.io/bcc/