BCC – Dinamikus nyomkövető eszközök Linux teljesítményfigyeléshez, hálózatépítéshez és még sok máshoz
A BCC (BPF Compiler Collection) megfelelő eszközök és példafájlok hatékony készlete a találékony kernelkövető és -manipuláló programok létrehozásához. Kibővített BPF-et (Berkeley Packet Filters) használ, eredetileg eBPF néven ismert, amely a Linux 3.15 egyik új funkciója volt..
Gyakorlatilag a BCC által használt legtöbb összetevőhöz Linux 4.1 vagy újabb verzió szükséges, és figyelemre méltó jellemzői a következők:
- Nem igényel harmadik féltől származó kernelmodult, mivel az összes eszköz a kernelbe beépített BPF-en alapul, és a BCC a Linux 4.x sorozathoz hozzáadott funkciókat használ.
- Lehetővé teszi a szoftver végrehajtásának megfigyelését.
- Számos teljesítményelemző eszközből áll, példafájlokkal és kézikönyvoldalakkal.
Javasolt olvasmány: 20 parancssori eszköz a Linux teljesítményének figyeléséhez
A haladó Linux-felhasználók számára a legmegfelelőbb BCC megkönnyíti a BPF programok írását a C nyelvű kernelműszerekkel, a nyelvű kezelőfelületekkel Python és lua. Ezenkívül számos feladatot támogat, például teljesítményelemzést, megfigyelést, hálózati forgalom vezérlését és még sok mást.
Hogyan telepítsük a BCC-t Linux rendszereken
Ne feledje, hogy a BCC a Linux kernel 4.1 vagy újabb verziójában hozzáadott szolgáltatásokat használ, és követelményként a kernelt az alábbiakban beállított jelzőkkel kellett volna lefordítani:
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
A kerneljelzők ellenőrzéséhez tekintse meg a /proc/config.gz fájlt, vagy futtassa a parancsokat az alábbi példák szerint:
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
A kerneljelzők ellenőrzése után itt az ideje telepíteni a BCC eszközöket Linux rendszereken.
Ubuntu 16.04-en
Csak az éjszakai csomagok készülnek az Ubuntu 16.04hez, de a telepítési utasítások nagyon egyszerűek. Nincs szükség kernel frissítésére vagy forrásból történő fordítására.
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-en
Kezdje egy 4.3+ Linux kernel telepítésével a http://kernel.ubuntu.com/~kernel-ppa/mainline webhelyről.
Példaként írjon egy kis shell szkriptet „bcc-install.sh” az alábbi tartalommal.
Megjegyzés: frissítse a PREFIX értéket a legfrissebb dátumra, és böngésszen a fájlok között a PREFIX url címen. lekérni a tényleges REL értéket, helyettesítse őket a shell szkriptben.
#!/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
Mentse el a fájlt és lépjen ki. Tegye végrehajthatóvá, majd futtassa a képen látható módon:
chmod +x bcc-install.sh
sh bcc-install.sh
Ezt követően indítsa újra a rendszert.
reboot
Ezután futtassa az alábbi parancsokat az aláírt BCC-csomagok telepítéséhez:
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
Fedorán 24-23
Telepítsen egy 4.2+ kernelt a http://alt.fedoraproject.org/pub/alt/rawhide-kernel-nodebug webhelyről, ha a rendszere a szükségesnél régebbi verzióval rendelkezik. Az alábbiakban egy példa látható, hogyan kell ezt megtenni:
sudo dnf config-manager --add-repo=http://alt.fedoraproject.org/pub/alt/rawhide-kernel-nodebug/fedora-rawhide-kernel-nodebug.repo
sudo dnf update
reboot
Ezután adja hozzá a BBC eszközök tárházát, frissítse a rendszert, és telepítse az eszközöket a következő parancssorozat végrehajtásával:
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 Linuxon – AUR
Kezdje a kernel frissítésével legalább a 4.3.1-1 verzióra, majd telepítse az alábbi csomagokat bármely Arch csomagkezelővel, például pacaur, yaourt<, cower stb.
bcc bcc-tools python-bcc python2-bcc
A BCC eszközök használata Linux rendszerekben
Az összes BCC eszköz a /usr/share/bcc/tools
könyvtárban található. Alternatív megoldásként futtathatja őket a BCC Github tárolóból a /tools
alatt, ahol a .py
kiterjesztéssel végződnek.
$ 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
Néhány példával foglalkozunk a – általános Linux rendszerteljesítmény és hálózatkezelés felügyelete alatt.
Nyomkövetés open() syscalls
Kezdjük azzal, hogy nyomon követjük az összes open()
rendszerhívást az opensnoop segítségével. Ez lehetővé teszi számunkra, hogy elmondjuk, hogyan működnek a különböző alkalmazások az adatfájlok, konfigurációs fájlok és sok más azonosításával:
$ 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
....
Összefoglalja a blokkeszköz I/O késleltetését
Ebben a példában a lemez I/O késésének összefoglaló eloszlását mutatja a biolatencia használatával. A parancs végrehajtása után várjon néhány percet, majd nyomja meg a Ctrl-C billentyűket a befejezéshez és a kimenet megtekintéséhez.
$ 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 |************* |
Kövesse nyomon az új folyamatokat az exec() Syscalls segítségével
Ebben a részben áttérünk az új folyamatok nyomon követésére a végrehajtás során az execsnoop eszköz segítségével. Minden alkalommal, amikor egy folyamatot a fork()
és az exec()
rendszerhívások elágaznak, az megjelenik a kimenetben. Azonban nem minden folyamatot rögzítenek.
$ 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
...
Lassú ext4 műveletek nyomon követése
Az ext4slower használata az ext4 fájlrendszer gyakori, 10 msnál lassabb műveleteinek nyomon követésére, hogy segítsen nekünk a fájlon keresztül önállóan azonosítani a lassú lemez I/O-t. rendszer.
Javasolt olvasmány: 13 Linux teljesítményfigyelő eszköz
Csak azokat a műveleteket adja ki, amelyek túllépnek egy küszöbértéket:
$ 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-vel és késleltetéssel
Következő lépésként merüljünk el egy sor lemezenkénti I/O nyomtatásában, olyan részletekkel, mint a folyamatazonosító, szektor, bájtok, késleltetés, többek között a biosnoop használatával:
$ 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
...
Nyomkövetési oldal gyorsítótár találat/kihagyás aránya
Ezt követően folytatjuk a cachestat használatával, amely másodpercenként egy sort jelenít meg a rendszer gyorsítótárából. Ez lehetővé teszi a rendszer hangolását azáltal, hogy rámutat az alacsony gyorsítótár találati arányára és a nagy kihagyások arányára:
$ 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
...
Az aktív TCP kapcsolatok nyomon követése
A TCP kapcsolatok figyelése másodpercenként a tcpconnect használatával. Kimenete tartalmazza a forrás- és célcímet, valamint a portszámot. Ez az eszköz hasznos a váratlan TCP-kapcsolatok nyomon követésére, ezáltal segít azonosítani az alkalmazáskonfigurációban tapasztalható hiányosságokat vagy a támadót.
$ 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
...
A fenti eszközök mindegyike különféle opciókkal is használható, például egy adott eszköz súgóoldalának engedélyezéséhez használja a -h
opciót, például:
$ 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
A sikertelen exec()s rendszerhívások nyomon követéséhez használja a -x
opciót opensnoop-pal az alábbiak szerint:
$ 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
...
Kövesse nyomon az adott folyamatfunkciókat
Az alábbi utolsó példa bemutatja, hogyan kell végrehajtani egy egyéni nyomkövetési műveletet. Egy adott folyamatot követünk nyomon a PID használatával.
Javasolt olvasmány: Netdata – Valós idejű teljesítményfigyelő eszköz Linuxhoz
Először határozza meg a folyamatazonosítót:
$ pidof firefox
15437
Később futtassa az egyéni trace parancsot. Az alábbi parancsban: -p
a folyamatazonosítót adja meg, a do_sys_open()
egy kernelfüggvény, amely dinamikusan nyomon követhető, beleértve a második argumentumot karakterláncként.
$ 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
....
Összegzés
A BCC egy hatékony és könnyen használható eszközkészlet különféle rendszeradminisztrációs feladatokhoz, mint például a rendszer teljesítményének nyomon követése, a blokkeszközök nyomon követése I/O, TCP-funkciók, fájlrendszer-műveletek, rendszerhívások, Node.js próbák. , plusz még sok más. Fontos, hogy számos példafájlt és kézikönyvoldalt tartalmaz, amelyek az útmutatót szolgálják, így felhasználóbarát és megbízható.
Végül, de nem utolsósorban, az alábbi megjegyzés rovaton keresztül kapcsolatba léphet velünk, ha megosztja gondolatait a témával kapcsolatban, kérdéseket tesz fel, hasznos javaslatokat tesz, vagy bármilyen építő jellegű visszajelzést tesz.
További információkért és használatért látogasson el: https://iovisor.github.io/bcc/