BCC – Dynamische Tracing-Tools für Linux-Leistungsüberwachung, Netzwerk und mehr
BCC (BPF Compiler Collection) ist ein leistungsstarker Satz geeigneter Tools und Beispieldateien zum Erstellen einfallsreicher Programme zur Kernel-Ablaufverfolgung und -Manipulation. Es verwendet erweitertes BPF (Berkeley Packet Filters), ursprünglich bekannt als eBPF, eine der neuen Funktionen in Linux 3.15.
Praktisch erfordern die meisten von BCC verwendeten Komponenten Linux 4.1 oder höher, und zu seinen bemerkenswerten Funktionen gehören:
- Erfordert kein Kernelmodul eines Drittanbieters, da alle Tools auf BPF basieren, das im Kernel integriert ist, und BCC Funktionen nutzt, die in der Linux 4.x-Serie hinzugefügt wurden.
- Ermöglicht die Beobachtung der Softwareausführung.
- Besteht aus mehreren Leistungsanalysetools mit Beispieldateien und Manpages.
Empfohlene Lektüre: 20 Befehlszeilentools zur Überwachung der Linux-Leistung
BCC eignet sich am besten für fortgeschrittene Linux-Benutzer und erleichtert das Schreiben von BPF-Programmen mit Kernel-Instrumentierung in C und Frontends in Python und lua. Darüber hinaus unterstützt es mehrere Aufgaben wie Leistungsanalyse, Überwachung, Kontrolle des Netzwerkverkehrs und vieles mehr.
So installieren Sie BCC in Linux-Systemen
Denken Sie daran, dass BCC Funktionen verwendet, die in der Linux-Kernel-Version 4.1 oder höher hinzugefügt wurden, und dass der Kernel als Voraussetzung mit den unten gesetzten Flags kompiliert worden sein sollte:
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
Um Ihre Kernel-Flags zu überprüfen, sehen Sie sich die Datei /proc/config.gz an oder führen Sie die Befehle wie in den folgenden Beispielen aus:
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
Nachdem Sie die Kernel-Flags überprüft haben, ist es an der Zeit, die BCC-Tools auf Linux-Systemen zu installieren.
Unter Ubuntu 16.04
Für Ubuntu 16.04 werden nur die nächtlichen Pakete erstellt, die Installationsanweisungen sind jedoch sehr einfach. Kein Kernel-Upgrade oder Kompilieren aus dem Quellcode erforderlich.
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
Unter Ubuntu 14.04
Beginnen Sie mit der Installation eines 4.3+ Linux-Kernels von http://kernel.ubuntu.com/~kernel-ppa/mainline.
Schreiben Sie als Beispiel ein kleines Shell-Skript „bcc-install.sh“ mit dem folgenden Inhalt.
Hinweis: Aktualisieren Sie den PREFIX-Wert auf das neueste Datum und durchsuchen Sie auch die Dateien in der bereitgestellten PREFIX-URL Holen Sie sich den tatsächlichen REL-Wert und ersetzen Sie ihn im 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
Speichern Sie die Datei und beenden Sie den Vorgang. Machen Sie es ausführbar und führen Sie es dann wie gezeigt aus:
chmod +x bcc-install.sh
sh bcc-install.sh
Starten Sie anschließend Ihr System neu.
reboot
Führen Sie als Nächstes die folgenden Befehle aus, um signierte BCC-Pakete zu installieren:
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
Auf Fedora 24-23
Installieren Sie einen Kernel 4.2+ von http://alt.fedoraproject.org/pub/alt/rawhide-kernel-nodebug, wenn Ihr System über eine niedrigere Version als erforderlich verfügt. Nachfolgend finden Sie ein Beispiel dafür:
sudo dnf config-manager --add-repo=http://alt.fedoraproject.org/pub/alt/rawhide-kernel-nodebug/fedora-rawhide-kernel-nodebug.repo
sudo dnf update
reboot
Fügen Sie anschließend das BBC-Tools-Repository hinzu, aktualisieren Sie Ihr System und installieren Sie die Tools, indem Sie die nächste Befehlsreihe ausführen:
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
Auf Arch Linux – AUR
Sie sollten zunächst Ihren Kernel auf mindestens Version 4.3.1-1 aktualisieren und anschließend die folgenden Pakete mit beliebigen Arch-Paketmanagern wie pacaur, yaourt< installieren, cower usw.
bcc bcc-tools python-bcc python2-bcc
So verwenden Sie BCC-Tools in Linux-Systemen
Alle BCC-Tools werden im Verzeichnis /usr/share/bcc/tools
installiert. Sie können sie jedoch alternativ aus dem BCC Github-Repository unter /tools
ausführen, wo sie mit der Erweiterung .py
enden.
$ 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
Wir werden einige Beispiele unter „Überwachen der allgemeinen Leistung und Netzwerkleistung von Linux-Systemen“ behandeln.
Verfolgen Sie open()-Systemaufrufe
Beginnen wir damit, alle open()
-Systemaufrufe mithilfe von opensnoop zu verfolgen. Dadurch können wir uns mitteilen, wie verschiedene Anwendungen funktionieren, indem wir ihre Datendateien, Konfigurationsdateien und vieles mehr identifizieren:
$ 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
....
Fassen Sie die E/A-Latenz von Blockgeräten zusammen
In diesem Beispiel wird eine zusammengefasste Verteilung der Festplatten-E/A-Latenz mithilfe von Biolatecncy gezeigt. Warten Sie nach der Ausführung des Befehls einige Minuten und drücken Sie dann Strg-C, um ihn zu beenden und die Ausgabe anzuzeigen.
$ 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 |************* |
Verfolgen Sie neue Prozesse über exec()-Syscalls
In diesem Abschnitt werden wir uns mit der Verfolgung neuer Prozesse in der Ausführung mit dem execsnoop-Tool befassen. Jedes Mal, wenn ein Prozess durch die Systemaufrufe fork()
und exec()
gegabelt wird, wird dies in der Ausgabe angezeigt. Allerdings werden nicht alle Prozesse erfasst.
$ 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
...
Verfolgen Sie langsame ext4-Vorgänge
Verwenden von ext4slower, um die allgemeinen Vorgänge des ext4-Dateisystems zu verfolgen, die langsamer als 10 ms sind, um uns dabei zu helfen, unabhängige langsame Festplatten-E/A über die Datei zu identifizieren System.
Empfohlene Lektüre: 13 Linux-Leistungsüberwachungstools
Es werden nur die Vorgänge ausgegeben, die einen Schwellenwert überschreiten:
$ 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 mit PID und Latenz
Lassen Sie uns als Nächstes in das Drucken einer Zeile pro Festplatten-E/A pro Sekunde eintauchen, mit Details wie Prozess-ID, Sektor, Bytes, Latenz und anderen mithilfe von 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
...
Hit/Miss-Verhältnis im Trace-Seiten-Cache
Anschließend verwenden wir cachestat, um jede Sekunde eine Zeile zusammengefasster Statistiken aus dem Systemcache anzuzeigen. Dies ermöglicht Systemoptimierungsvorgänge, indem es auf eine niedrige Cache-Trefferquote und eine hohe Fehlerquote hinweist:
$ 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
...
Verfolgen Sie aktive TCP-Verbindungen
Überwachung von TCP-Verbindungen jede Sekunde mit tcpconnect. Die Ausgabe umfasst Quell- und Zieladresse sowie Portnummer. Dieses Tool ist nützlich, um unerwartete TCP-Verbindungen zu verfolgen und uns so dabei zu helfen, Ineffizienzen in Anwendungskonfigurationen oder einen Angreifer zu identifizieren.
$ 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
...
Alle oben genannten Tools können auch mit verschiedenen Optionen verwendet werden. Um die Hilfeseite für ein bestimmtes Tool zu aktivieren, nutzen Sie die Option -h
, zum Beispiel:
$ 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 fehlgeschlagene exec()s-Systemaufrufe
Um fehlgeschlagene exec()-Systemaufrufe zu verfolgen, verwenden Sie die Option -x
mit openSnoop wie folgt:
$ 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
...
Verfolgen Sie bestimmte Prozessfunktionen
Das letzte Beispiel unten zeigt, wie ein benutzerdefinierter Ablaufverfolgungsvorgang ausgeführt wird. Wir verfolgen einen bestimmten Prozess anhand seiner PID.
Empfohlene Lektüre: Netdata – Ein Echtzeit-Leistungsüberwachungstool für Linux
Bestimmen Sie zunächst die Prozess-ID:
$ pidof firefox
15437
Führen Sie später den benutzerdefinierten Befehl trace aus. Im folgenden Befehl: -p
gibt die Prozess-ID an, do_sys_open()
ist eine Kernelfunktion, die dynamisch verfolgt wird, einschließlich ihres zweiten Arguments als Zeichenfolge.
$ 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
....
Zusammenfassung
BCC ist ein leistungsstarkes und benutzerfreundliches Toolkit für verschiedene Systemverwaltungsaufgaben, wie z. B. die Überwachung der Systemleistung, die Verfolgung von Blockgeräte-E/A, TCP-Funktionen, Dateisystemvorgänge, Systemaufrufe und Node.js-Prüfungen , und vieles mehr. Wichtig ist, dass im Lieferumfang mehrere Beispieldateien und Manpages für die Tools enthalten sind, die Sie anleiten, was es benutzerfreundlich und zuverlässig macht.
Zu guter Letzt können Sie sich über den Kommentarbereich unten an uns wenden, indem Sie Ihre Gedanken zum Thema mitteilen, Fragen stellen, nützliche Vorschläge machen oder konstruktives Feedback geben.
Weitere Informationen und Nutzung finden Sie unter: https://iovisor.github.io/bcc/