BCC - Dynamiczne narzędzia śledzenia do monitorowania wydajności Linux, sieci i innych

BCC - Dynamiczne narzędzia śledzenia do monitorowania wydajności Linux, sieci i innych

BCC (Kolekcja kompilatora BPF) to potężny zestaw odpowiednich narzędzi i przykładowych plików do tworzenia zaradnych programów śledzenia i manipulacji jądra. Wykorzystuje rozszerzony BPF (Filtry pakietów Berkeley), początkowo znany jako EBPF który był jedną z nowych funkcji w Linux 3.15.

BCC/BPF - Dynamiczne narzędzia śledzenia do monitorowania wydajności Linux

Praktycznie większość komponentów używanych przez BCC wymagać Linux 4.1 lub powyżej, a jego godne uwagi funkcje obejmują:

  1. Nie wymaga modułu jądra z trzeciej imprezy, ponieważ wszystkie narzędzia działają oparte na BPF, który jest wbudowany w jądro, a BCC używa funkcji dodanych w Linux 4.Seria x.
  2. Umożliwia obserwację wykonywania oprogramowania.
  3. Obejmuje kilka narzędzi do analizy wydajności z przykładowymi plikami i stronami człowieka.

Sugerowane przeczytanie: 20 Narzędzia wiersza poleceń do monitorowania wydajności Linux

Najlepiej pasują do zaawansowanych użytkowników Linux, BCC Ułatwia pisanie BPF programy wykorzystujące oprzyrządowanie jądra w C, i front-end in Pyton I Lua. Dodatkowo obsługuje wiele zadań, takich jak analiza wydajności, monitorowanie, kontrola ruchu sieci.

Jak zainstalować BCC w systemach Linux

Zapamietaj to BCC Używa funkcji dodanych w wersji jądra Linux 4.1 lub powyżej i jako wymóg, jądro powinno być skompilowane z flagami ustalonymi poniżej:

Config_bpf=y Config_bpf_syscall=y # [Opcjonalnie, dla filtrów TC] Config_net_cls_bpf=M # [Opcjonalnie, dla działań TC] Config_net_act_bpf=M Config_bpf_jit=y Config_have_bpf_jit=y # [Opcjonalnie, dla KProbes] Config_bpf_events=y 

Aby sprawdzić flagi jądra, wyświetl plik /proc/config.GZ lub uruchom polecenia jak w poniższych przykładach:

[chroniony e -mail] ~ $ grep config_bpf = /boot /config-'uname -r ' Config_bpf=y [chroniony e -mail] ~ $ grep config_bpf_syscall = /boot /config -'uname -r ' Config_bpf_syscall=y [chroniony e -mail] ~ $ grep config_net_cls_bpf = /boot /config-'uname -r ' Config_net_cls_bpf=M [chroniony e -mail] ~ $ GREP config_net_act_bpf = /boot /config -'uname -r ' Config_net_act_bpf=M [chroniony e -mail] ~ $ grep config_bpf_jit = /boot /config -'uname -r ' Config_bpf_jit=y [chroniony e -mail] ~ $ grep config_have_bpf_jit = /boot /config -'uname -r ' Config_have_bpf_jit=y [chroniony e -mail] ~ $ GREP config_bpf_events = /boot /config -'uname -r ' Config_bpf_events=y 

Po weryfikacji flag jądra nadszedł czas na zainstalowanie BCC Narzędzia w systemach Linux.

Na Ubuntu 16.04

Tworzone są tylko nocne pakiety Ubuntu 16.04, Ale instrukcje instalacji są bardzo proste. Nie potrzebujesz uaktualnienia lub skompilowania go ze źródła.

$ echo "deb [trusted = tak] https: // repo.Iovisor.org/apt/ksenialny ksenial-noc główny „| sudo tee/etc/apt/źródła.lista.D/iovisor.Lista $ sudo apt-get aktualizacja $ sudo apt-get instaluj narzędzia BCC 

Na Ubuntu 14.04

Zacznij od zainstalowania 4.3+ Kernel Linux, z jądra http: //.Ubuntu.com/~ jądro-pA/główna linia.

Jako przykład napisz mały skrypt powłoki „BCC-install.cii”Z zawartością poniżej.

Notatka: aktualizacja PREFIKS wartość do najnowszej daty, a także przeglądaj pliki w URL Prefiks dostarczone, aby uzyskać rzeczywisty Rel wartość, zastąp je w skrypcie powłoki.

#!/bin/bash ver = 4.5.1-040501 Prefiks = http: // jądro.Ubuntu.com/~ jądro-pA/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 

Zapisz plik i wyjdź. Uczyń go wykonywalny, a następnie uruchom go zgodnie z pokazem:

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

Następnie ponownie uruchom swój system.

$ reboot 

Następnie uruchom poniższe polecenia, aby zainstalować podpisane pakiety BCC:

$ sudo apt-key adv-keyserver Keyserver.Ubuntu.com--recv-keys D4284CDD $ echo "deb https: // repo.Iovisor.org/apt zaufany główny „| sudo tee/etc/apt/źródła.lista.D/iovisor.Lista $ sudo apt-get aktualizacja $ sudo apt-get instaluj binutils bcc bcc-tools libbcc-examples Python-BCC 

Na Fedorze 24-23

Zainstaluj 4.2+ jądro z http: // alt.Fedoraproject.org/pub/alt/rawhide-kernel-nodebug, jeśli twój system ma wersję niższą niż to, co jest wymagane. Poniżej znajduje się przykład tego, jak to zrobić:

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

Następnie dodaj BBC Repozytorium narzędzi, zaktualizuj system i zainstaluj narzędzia, wykonując kolejną serię poleceń:

$ echo -e '[iovisor] \ nbaseurl = https: // repo.Iovisor.org/yum/noc/f23/$ basearch \ nenabled = 1 \ ngpgcheck = 0 '| sudo koszulka /etc /mniam.repozytorium.D/iovisor.Repo $ sudo dnf aktualizacja $ sudo dnf instaluj narzędzia BCC 

Na Arch Linux - aur

Powinieneś zacząć od aktualizacji jądra do przynajmniej wersji 4.3.1-1, Następnie zainstaluj poniższe pakiety za pomocą dowolnych menedżerów pakietów Arch, takich jak Pacaur, Yaourt, czołgać się, itp.

BCC BCC-Tools Python-BCC Python2-BCC 

Jak korzystać z narzędzi BCC w systemach Linux

Wszystkie BCC Narzędzia są instalowane pod /usr/share/bcc/narzędzia informator. Możesz jednak alternatywnie uruchomić je z BCC Github Repozytorium pod /narzędzia gdzie kończą się .py rozszerzenie.

$ ls/usr/share/bcc/narzędzia  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 

Omówimy kilka przykładów - monitorowanie ogólnej wydajności i sieci systemu Linux.

Trace Open () Syscalls

Zacznijmy od śledzenia wszystkich otwarty() Syscalls używa Opensnoop. Umożliwia to nam powiedzenie nam, jak działają różne aplikacje, identyfikując ich pliki danych, pliki konfiguracyjne i wiele innych:

$ cd/usr/share/bcc/narzędzia  $ 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-debug-debug.Mocować 1 Systemd -1 2/run/Systemd/System/SYS-KRENEL-DEBUG DREATING.Mocować 1 Systemd -1 2/run/Systemd/Generator/SYS-KRENLEL-DEBUG DEPTACJA.Mount 1 Systemd -1 2/usr/local/lib/systemd/system/sys-kernel-debug-debug.Mount 2247 Systemd 15 0/proc/self/mountinfo 1 Systemd -1 2/lib/Systemd/System/Sys-Kernel-Debug-DEBUG-Dating.Mount 1 Systemd -1 2/usr/lib/Systemd/System/SYS-KRENLEL-DEBUG DEPTACJA.Mocować 1 SystemD -1 2/Run/Systemd/Generator.Późne/SYS-KRENEL-DEBUG CHPING.Mount 1 Systemd -1 2/etc/Systemd/System/SYS-KRENEL-DEBUG DEPTACJA.uchwyt.chce 1 Systemd -1 2/etc/Systemd/System/SYS-KRENLEL-DEBUG-DEBUG CHING.uchwyt.Wymaga 1 SystemD -1 2/Run/Systemd/System/SYS-KRENLEL-DEBUG-DEBUG DREATING.uchwyt.chce 1 Systemd -1 2/run/Systemd/System/SYS-KRENEL-DEBUG-DEBUG DREATING.uchwyt.Wymaga 1 SystemD -1 2/run/Systemd/Generator/SYS-KRENEL-DEBUG DEPTACJA.uchwyt.chce 1 systemd -1 2/run/systemd/generator/sys-kernel-debug-debug-celowanie.uchwyt.Wymaga 1 SystemD -1 2/usr/local/lib/systemd/system/sys-kernel-debug-debug-celing.uchwyt.chce 1 Systemd -1 2/usr/local/lib/systemd/system/sys-kernel-debug-debug-celowanie.uchwyt.Wymaga 1 SystemD -1 2/Lib/Systemd/System/SYS-KRENEL-DEBUG DEPTACJA.uchwyt.chce 1 Systemd -1 2/lib/systemd/system/sys-kernel-debug-debug-celowanie.uchwyt.Wymaga 1 Systemd -1 2/usr/lib/systemd/system/sys-kernel-debug-debug.uchwyt.chce 1 Systemd -1 2/usr/lib/systemd/system/sys-e-debug-debug-debug.uchwyt.Wymaga 1 SystemD -1 2/Run/Systemd/Generator.Późne/SYS-KRENEL-DEBUG CHPING.uchwyt.chce 1 systemd -1 2/run/systemd/generator.Późne/SYS-KRENEL-DEBUG CHPING.uchwyt.Wymaga 1 SystemD -1 2/etc/Systemd/System/SYS-KRENEL-DEBUG DEPTACJA.uchwyt.D 1 SystemD -1 2/Run/Systemd/System/SYS-KRENEL-DEBUG DREATING.uchwyt.D 1 Systemd -1 2/run/Systemd/Generator/SYS-KRENEL-DEBUG DEPTACJA.uchwyt.D… 

Podsumuj opóźnienie we/wy urządzenia blokowego

W tym przykładzie pokazuje podsumowany rozkład opóźnienia we/wy dysku za pomocą biolatecncy. Po wykonaniu polecenia poczekaj kilka minut i uderz Ctrl-C Aby to zakończyć i wyświetlić wyjście.

$ sudo ./BIOLATECNCY Śledzenie urządzenia blokowego I/O… na koniec ctrl-C. ^C USECS: Dystrybucja liczby 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 | ************* 

Śledź nowe procesy za pośrednictwem syscalls exec ()

W niniejszej sekcji przejdziemy do śledzenia nowych procesów podczas wykonania za pomocą ExecSnoop narzędzie. Za każdym razem, gdy proces jest rozwidlejący widelec() I exec () Syscalls, jest to pokazane na wyjściu. Jednak nie wszystkie procesy są przechwytywane.

$ 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/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/ Informacje o użytkownikach netto nautilus 14897 2767 -2/home/tecmint/.LOKALNE/BIN/NET Użytkownicy Info Nautilus 14897 2767 -2/usr/bin/net Usershare Info 2767 -2/USR/Local/Games/Net Usershare 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/sbin/sbin/sbin/sbin/sbin/sbin//sbin//sbin//sbin//sbin/sbin/sbin/ LibreOffice -Calc LibreOffice 14899 2252 0/usr/bin/libreOffice -Calc Dirname 14902 14899 0/usr/bin/dirname/usr/libreoffice bazename 14903 14899 0/usr/bin/biname/usr/bin/libreoffice… 

Śledź powolne operacje ext4

Za pomocą ext4slower prześledzić ext4 System plików wspólne operacje, które są wolniejsze niż 10 ms, Aby pomóc nam zidentyfikować niezależnie powolne we/wy za pośrednictwem systemu plików za pośrednictwem systemu plików.

Sugerowane przeczytanie: 13 Narzędzia do monitorowania wydajności Linux

Wyświetla tylko te operacje przekraczające próg:

$ sudo ./ExecsLower Śledzenie operacji ext4 wolniej niż 10 ms Comm Pid T bajty Off_KB Lat (MS) Nazwa pliku 11:59:13 Upstart 2252 W 48 1 10.76 dbus.Log 11:59:13 Gnome-Screensh 14993 R 144 0 10.96 Ustawienia.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: Główny P: Reg 1826 W 156 60 31.85 Syslog 11:59:25 Pool 15002 R 208 0 14.98 .xsession-błąd 11:59:25 pula 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 Użytkownik.Bhdkoy 11:59:33 Compiz 2548 R 4096 0 19.03 Firefox.Desiktop 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 aktywność.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 zależne.Lista 11:59:34 Zeitgeist-Fts 2996 S 0 0 25.96 Pozycja.TMP 11:59:34 Firefox 15008 R 4096 0 10.67 libplc4.Więc 11:59:34 Zeitgeist-Fts 2996 S 0 0 11.29 lista terminów.TMP… 

Śledzić we/wy urządzenia blokowego z PID i opóźnieniem

Następnie zanurzmy się w drukowaniu linii na we/wy dysk w każdej sekundzie, ze szczegółami takimi jak identyfikator procesu, sektor, bajty, opóźnienie za pomocą BiosNoop:

$ sudo ./BiosNoop Czas (-y) dysk comm pid bajty sektorowe 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… 

Trace Page Page Cache Hit/Miss Współczynnik

Następnie przechodzimy do używania Cachestat Aby wyświetlić jedną linię podsumowanych statystyk z pamięci podręcznej systemu co sekundę. Umożliwia to operacje strojenia systemu, wskazując niski wskaźnik uderzeń pamięci podręcznej i wysoką szybkość braków:

$ sudo ./Cachestat Trafienia pominięć bruzyki read_hit% write_hit% bufers_mb buforowany_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… 

Śledź aktywne połączenia TCP

Monitorowanie połączeń TCP co sekundę za pomocą tcpconnect. Jego wyjście obejmuje adres źródłowy i docelowy oraz numer portu. To narzędzie jest przydatne do śledzenia nieoczekiwanych połączeń TCP, pomagając nam w ten sposób zidentyfikować nieefektywność w konfiguracjach aplikacji lub atakującego.

$ sudo ./tcpconnect PID COMM IP SADDR DATDR DPORT 15272 SNETKET THREA 4 10.0.2.15 91.189.89.240 80 15272 Gniazdo Threa 4 10.0.2.15 216.58.199.142 443 15272 Gniazdo Threa 4 10.0.2.15 216.58.199.142 80 15272 Gniazdo Threa 4 10.0.2.15 216.58.199.174 443 15272 Gniazdo Threa 4 10.0.2.15 54.200.62.216 443 15272 Gniazdo Threa 4 10.0.2.15 54.200.62.216 443 15272 Gniazdo Threa 4 10.0.2.15 117.18.237.29 80 15272 Gniazdo Threa 4 10.0.2.15 216.58.199.142 80 15272 Gniazdo Threa 4 10.0.2.15 216.58.199.131 80 15272 Gniazdo Threa 4 10.0.2.15 216.58.199.131 443 15272 Gniazdo Threa 4 10.0.2.15 52.222.135.52 443 15272 Gniazdo Threa 4 10.0.2.15 216.58.199.131 443 15272 Gniazdo Threa 4 10.0.2.15 54.200.62.216 443 15272 Gniazdo Threa 4 10.0.2.15 54.200.62.216 443 15272 Gniazdo Threa 4 10.0.2.15 216.58.199.132 443 15272 Gniazdo Threa 4 10.0.2.15 216.58.199.131 443 15272 Gniazdo Threa 4 10.0.2.15 216.58.199.142 443 15272 Gniazdo Threa 4 10.0.2.15 54.69.17.198 443 15272 Gniazdo Threa 4 10.0.2.15 54.69.17.198 443… 

Wszystkie powyższe narzędzia można również użyć z różnymi opcjami, aby włączyć stronę pomocy dla danego narzędzia, skorzystaj z -H Opcja, na przykład:

$ sudo ./tcpconnect -h Zastosowanie: tcpconnect [-h] [-t] [-p pid] [-p port] śledzenie TCP łączy opcjonalne argumenty: -h,--Help Pokaż tę wiadomość pomoc i wyjście -t,-timeStamp zawiera znacznik czasu na wyjściu- p PID, -PID PID Śledź ten port tylko PID -P, -Portyp Port oddzielony przecinkami listy portów docelowych do śledzenia. Przykłady: ./tcpconnect # śledź wszystkie tcp connect () s ./tcpconnect -t # zawiera znaczniki czasu ./tcpconnect -p 181 # tylko ślad PID 181 ./tcpconnect -p 80 # Tylko port śledzenia 80 ./tcpconnect -p 80,81 # tylko port Trace 80 i 81 

Trace Failed Exec () S Syscalls

Aby śledzić nieudane exec () s syscalls, zastosuj -X Opcja z OpenSnoop jak poniżej:

$ sudo ./OpenSnoop -x PID COMM FD ERR PATH 15414 PULL -1 2 /HOME /.Ukryty 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/MAMET/SYSTEM.Slice/Systemd-Hostnamed.Service/Cgroup.PROCS 15415 (OSTNAMED) -1 2/SYS/FS/CGROUP/MAMET/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/Systemd/Systemd/Systemd/Systemd/Systemd/Systemd/ kontener 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/użytkownicy/0 15415 Systemd -hostnam -1 2/etc/maszyn -info 15414 puli -1 2/home/tecmint/.Ukryty 15414 puli -1 2/dom/tecmint/binarny/.Ukryty 2599 DCONF -SERVICE -1 2/UNIT/USERTER/1000/DCONF/Użytkownik… 

Śledź określone funkcje procesu

Ostatni przykład poniżej pokazuje, jak wykonać niestandardową operację śledzenia. Śledzimy określony proces za pomocą jego PID.

Sugerowane przeczytanie: NetData - narzędzie do monitorowania wydajności w czasie rzeczywistym dla Linux

Najpierw określ identyfikator procesu:

$ pidof Firefox 15437 

Później uruchom zwyczaj namierzać Komenda. W poleceniu poniżej: -P Określa identyfikator procesu, do_sys_open () to funkcja jądra, która jest prześledzona dynamicznie, w tym drugi argument jako ciąg.

$ sudo ./trace -p 4095 'do_sys_open "%s", arg2' Czas 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/użytkownik 12:18:07 15437 Firefox do_sys_open/run/user/1000/dconf/użytkownik 12:18:07 15437 Firefox Do_Sys_Open/home/tecMint/.config/dconf/użytkownik 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/wyzwolenie/wyzwolenie-Italica.TTF 12:18:14 15437 Firefox do_sys_open/usr/share/fonts/trueType/wyzwolenie/wyzwolenie.TTF 12:18:14 15437 Firefox do_sys_open/usr/share/fonts/trueType/wyzwolenie/wyzwolenie.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/Urandom 12:18: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/Syss/System/CPU/CPU/CPUS 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/Syss/System/CPU/Prezent 12:18:15 15437 Firefox Do_Sys_Open/Dev/Urandom 12:18:15 15437 Firefox Do_Sys_Open/Dev// Urandom… 

Streszczenie

BCC to potężny i łatwy w użyciu zestaw narzędzi do różnych zadań administracji systemu, takich jak śledzenie monitorowania wydajności systemu, śledzenie we/wy urządzenia blokowego, funkcje TCP, operacje systemu plików, syscalls, węzeł.sondy JS oraz dużo więcej. Co ważne, wysyła z kilkoma przykładowymi plikami i stronami dla narzędzi, które mogą cię prowadzić, dzięki czemu jest przyjazny i niezawodny użytkownika.

Wreszcie możesz wrócić do nas, dzieląc się swoimi przemyśleniami na ten temat, zadawanie pytań, przydatne sugestie lub dowolne konstruktywne informacje zwrotne za pośrednictwem sekcji komentarzy poniżej.

Aby uzyskać więcej informacji i użytkowania Odwiedź: https: // iovisor.github.IO/BCC/