Oracle parantos medalkeun DTrace kanggo Linux 2.0.0-1.14

Rilis ékspériméntal tina toolkit debugging dinamis DTrace parantos diwanohkeun pikeun Linux 2.0.0-1.14, diimplementasikeun salaku prosés rohangan pangguna nganggo subsistem eBPF sareng mékanisme pelacakan standar anu disayogikeun ku kernel LinuxDina hal fungsionalitas, implementasi DTrace berbasis eBPF ampir sami sareng implementasi DTrace anu munggaran pikeun Linux, diimplementasikeun salaku modul kernel. Kode proyék disebarkeun dina lisénsi GPLv2.

Toolkit ieu tiasa dianggo sareng kernel standar Linux, ngadukung BPF. Ieu meryogikeun perpustakaan libctf, anu ngalaksanakeun dukungan pikeun format debug CTF (Compact Type Format), anu kalebet dina pakét binutils ti saprak rilis 2.40, atanapi perpustakaan libdtrace-ctf, anu diporting ti Solaris. Dua patch pikeun kernel 6.7 sayogi sacara opsional, ngamungkinkeun kamampuan canggih pikeun kéngingkeun data tambahan ngeunaan modul sareng kernel.

Téknologi DTrace dikembangkeun pikeun ngabéréskeun masalah dina ngalacak kernel sareng aplikasi tungtung dina sistem operasi Solaris. DTrace méré pamaké kamampuhan pikeun ngawas kabiasaan sistem di jéntré tur nangtukeun jenis panyakitna masalah sacara real waktu. Salila prosés debugging, DTrace henteu mangaruhan operasi aplikasi anu ditalungtik sareng henteu mangaruhan kinerjana, anu ngamungkinkeun anjeun ngatur analisa sistem anu ngajalankeun dina laleur. Salah sahiji kaunggulan DTrace nyaéta basa D-tingkat tinggi, sarupa jeung AWK, nu loba gampang nyieun skrip tracing ti ngagunakeun parabot ditawarkeun pikeun nulis pawang eBPF dina C, Python jeung Lua kalawan perpustakaan éksternal.

fitur konci:

  • Panyadia anu sayogi:
    • cpc (CPU Performacne Counter) - meunangkeun informasi kinerja.
    • dtrace - BEGIN, END na ERROR pawang ngajalankeun saméméh atawa sanggeus cék séjén, kitu ogé nalika kasalahan lumangsung.
    • fbt (Fungsi Wates Tracing) - nyukcruk nelepon ka fungsi kernel.
    • lockstat - nyukcruk status konci.
    • pid - Tracks fungsi panggero dina prosés ngajalankeun di spasi pamaké.
    • proc - monitor aktivitas patali prosés kayaning ngamimitian jeung shutdown (garpu, exec, kaluar, lepat).
    • profil - nyimpen statistik kinerja dina interval nu tangtu.
    • sdt, rawtp - statik kernel tracing (SDT - statically Defined Tracing).
    • usdt: nyukcruk aplikasi statik (USDT - Nyukcruk Ditetepkeun Statik Pangguna)
    • sched - monitor alokasi sumberdaya CPU.
    • sycall - Ngalacak asupna sareng kaluar tina telepon sistem.
  • Aggregation data dikumpulkeun: kamampuhan pikeun ngagunakeun fungsi agrégat (avg, count, llquantize, lquantize, max, mnt, quantize, stddev jeung jumlah) jeung lampah agrégat (jelas, normalize, normalize, printa). Rojongan pikeun nyimpen hasil nerapkeun fungsi agrégat dina arrays biasa na associative.
  • Rojongan pikeun tracing spekulatif, nu ngidinan Anjeun pikeun ephemerally ngawas data, mutuskeun nu di antarana kudu direbut dina panyangga renik jeung nu kudu dipiceun. Fungsi anu sayogi nyaéta spekulasi, spekulasi, komitmen sareng piceun.
  • Rojongan pikeun variabel global sareng lokal, TLS (Thread-Local Storage), arrays associative sareng senar.
  • Nyadiakeun variabel anu diwangun: arg0 - arg9, args [], panelepon, curcpu, curthread, epid, errno, execname, gid, id, pid, ppid, probefunc, probemod, probename, probeprov, stackdepth, tid, timestamp, ucaller, uid, uregs [], ustackdepth, walltimestamp.
  • Tindakan anu dirojong: kaluar, freopen, ftruncate, mod, printa, printf, raise, setopt, stack, sym, system, trace, tracemem, uaddr, umod, ustack and usym.
  • Kasadiaan fungsi-fungsi: alloca, basename, bcopy, copyin, copyinstr, copyinto, copyout, copyoutstr, dirname, getmajor, getminor, htonl, htonll, htons, index, inet_ntoa, lltostr, mutex_owned, mutex_owner, mutex_type_ntohl_adaptive, mutex_type_adaptive , ntohll, ntohs, progenyof, rand, rindex, rw_iswriter, rw_read_held, rw_write_held, strchr, strjoin, strlen, strrchr, strstr, strtok, substr.
  • Ayana counters data nu teu kaasup dina buffers renik.
  • Rojongan pikeun nyusun skrip D tracing kana bentuk program BPF.
  • Precompiling fungsi BPF pikeun panggero perpustakaan.
  • Pilihan bpflog pikeun meunangkeun log verifikasi program BPF anu dimuat.
  • Generasi kode dinamis sareng precompilation kode pikeun dianggo deui dina program BPF.

Parobahan dina versi anyar:

  • Panyadia pid, dipaké pikeun ngalacak prosés di rohangan pamaké, geus ditambahkeun rojongan pikeun nyukcruk palaksanaan parentah ku offset maranéhanana dina kode.
  • rojongan ditambahkeun pikeun pamakéan tumpukan () sarta ustack () fungsi pikeun ngumpulkeun data dikumpulkeun.
  • Kamampuhan pikeun ngahapus unsur tina jinis naon waé tina susunan asosiatif ku cara napelkeun 0 literal.
  • Ditambahkeun tindakan cetak pikeun ngaluarkeun data terstruktur sareng anotasi jinis.
  • Ditambahkeun anyar diwangun-di fungsi cleanpath (), d_path () sarta link_ntop ().
  • Ditambahkeun parameter "-xcpu", nu ngidinan Anjeun pikeun meungkeut cék ka CPU husus.
  • Ditambahkeun "-xlockmem" pilihan pikeun ngawatesan ukuran mémori.
  • Disadiakeun kamampuhan pikeun nyimpen data renik prosés (USDT) antara dtprobed restarts.
  • Rojongan pikeun mékanisme BTF (BPF Type Format), anu nyayogikeun inpormasi mariksa jinis dina pseudocode BPF.
  • Kamampuhan ngagunakeun Aksara Konpigurasikeun ngawangun.

sumber: opennet.ru

Mésér hosting anu dipercaya pikeun situs anu gaduh panyalindungan DDoS, server VPS VDS 🔥 Meser hosting situs wéb anu tiasa dipercaya nganggo panyalindungan DDoS, server VPS VDS | ProHoster