Oracle ya buga DTrace don Linux 2.0.0-1.14

An gabatar da wani sakin gwaji na DTrace kayan aikin gyara tsauri don Linux 2.0.0-1.14, aiwatar da shi azaman tsari na sararin samaniya wanda ke amfani da tsarin eBPF da daidaitattun hanyoyin ganowa ta Linux kernel. Dangane da ayyuka, aiwatar da DTrace na tushen eBPF yana kusa da aiwatar da DTrace na farko don Linux, wanda aka aiwatar a cikin nau'in kernel module. Ana rarraba lambar aikin a ƙarƙashin lasisin GPLv2.

Ana iya amfani da kayan aikin tare da kernels na Linux wanda ke goyan bayan BPF. Don yin aiki, kuna buƙatar ɗakin karatu na libctf tare da aiwatar da tallafi don tsarin gyara kuskuren CTF (Compact Type Format), wanda aka haɗa a cikin kunshin binutils wanda ya fara daga sakin 2.40, ko ɗakin karatu na libdtrace-ctf da aka kawo daga Solaris. Zabi, ana ba da faci guda biyu don kernel 6.7, waɗanda ke ba ku damar amfani da abubuwan ci gaba don samun ƙarin bayanai game da kayayyaki da kwaya.

An haɓaka fasahar DTrace don magance matsalolin bibiyar kernel da ƙare aikace-aikace a cikin tsarin aiki na Solaris. DTrace yana ba mai amfani ikon saka idanu da halayen tsarin daki-daki da gano matsalolin a ainihin lokacin. A lokacin aiwatar da lalatawa, DTrace ba ya shafar aikin aikace-aikacen da aka yi nazari kuma ba ta kowace hanya ya shafi aikin su, wanda ya ba ka damar tsara nazarin tsarin tafiyarwa a kan tashi. Ɗayan ƙarfin DTrace shine babban yaren D, kama da AWK, wanda a cikinsa ya fi sauƙi don ƙirƙirar rubutun bincike fiye da amfani da kayan aikin da aka bayar don rubuta masu sarrafa eBPF a C, Python da Lua tare da ɗakunan karatu na waje.

Babban fasali:

  • Akwai masu samarwa:
    • cpc (CPU Performacne Counter) - samun bayanan aiki.
    • dtrace - BEGIN, END da ERROR masu sarrafa suna gudana kafin ko bayan wasu cak, da kuma lokacin da kurakurai suka faru.
    • fbt (Binciken Iyakar Ayyuka) - kiran sa ido zuwa ayyukan kwaya.
    • lockstat - bin diddigin matsayin makullai.
    • pid - Saƙon aikin kira a cikin matakai da ke gudana a cikin sararin mai amfani.
    • proc - yana lura da ayyukan da suka danganci tsari kamar farawa da rufewa (cokali mai yatsu, exec, fita, kuskure).
    • bayanin martaba - adana ƙididdigan aiki a ƙayyadadden tazara.
    • sdt, rawtp - binciken kwaya a tsaye (SDT - Ma'anar Binciken A tsaye).
    • usdt: Binciken aikace-aikacen a tsaye (USDT - Ƙayyadadden Ƙirar Mai Amfani)
    • sched - yana lura da rabon albarkatun CPU.
    • sycall - Yana bin shigarwa da fita na kiran tsarin.
  • Haɗin bayanan da aka tattara: ikon yin amfani da ayyukan tarawa (aiki, ƙidayawa, ƙididdigewa, ƙididdigewa, max, min, ƙididdigewa, stddev da jimla) da ayyukan tara (bayyana, daidaitawa, daidaitawa, bugawa). Taimako don adana sakamakon amfani da tara ayyuka a cikin tsararraki na yau da kullun da haɗin gwiwa.
  • Taimako don gano hasashe, wanda ke ba ku damar saka idanu kan bayanai cikin hanzari, yanke shawarar wanne daga cikinsu yakamata a kama shi a cikin buffer da kuma wanda yakamata a jefar. Ayyukan da ake da su sune hasashe, hasashe, ƙaddamarwa da jefar.
  • Taimakawa ga masu canji na duniya da na gida, TLS (Thread-Local Storage), tsararrun haɗin gwiwa da kirtani.
  • Samar da ginanniyar masu canji: arg0 - arg9, args[], mai kira, curcpu, curthread, epid, errno, execname, gid, id, pid, ppid, probefunc, probemod, probename, probeprov, stackdepth, tid, timestamp, ucaller, uid, uregs[], ustackdepth, walltimestamp.
  • Ana goyan bayan ayyuka: fita, freopen, ftruncate, mod, printa, printf, ɗagawa, setopt, stack, sym, tsarin, tracemem, uaddr, umod, ustack da usym.
  • Samar da ayyukan ginannun: alloca, basename, bcopy, copyin, copyinstr, copyinto, copyout, copyoutstr, dirname, getmajor, getminor, htonl, htonll, htons, index, inet_ntoa, lltostr, mutex_owned, mutex_owner, mutex_type_adaptive, mutex_type_adaptive, mutex_type_adaptive, mutex_type_adaptive, mutex_type_adaptive, mutex_type_adaptive, mutex , ntohll, ntohs, zuriya, rand, rindex, rw_iswriter, rw_read_held, rw_write_held, strchr, strjoin, strlen, strrchr, strstr, strtok, substr.
  • Kasancewar ma'aunin bayanan da ba a haɗa su a cikin ma'ajin ganowa ba.
  • Taimako don harhada rubutun bin diddigin D cikin sigar shirin BPF.
  • Gabatarwar ayyukan BPF don kiran laburare.
  • Zaɓin bpflog don samun takaddun shaida na shirye-shiryen BPF da aka ɗora.
  • Ƙirƙirar code mai ƙarfi da ƙididdige lambar don sake amfani da shi a cikin shirye-shiryen BPF.

Canje-canje a cikin sabon sigar:

  • Mai ba da pid, wanda aka yi amfani da shi don bin matakai a cikin sarari mai amfani, ya ƙara tallafi don bin diddigin aiwatar da umarni ta hanyar soke su a cikin lambar.
  • Ƙara tallafi don amfani da tari() da ayyukan ustack() don tara bayanan da aka tattara.
  • Ikon cire abubuwan kowane nau'i daga tsarin haɗin gwiwa ta hanyar sanya 0 na zahiri.
  • Ƙara aikin bugawa don fitar da bayanan da aka tsara tare da nau'in annotations.
  • An ƙara sabbin ayyukan ginanniyar hanyar tsabta (), d_path() da link_ntop().
  • An ƙara ma'aunin "-xcpu", wanda ke ba ku damar ɗaure cak zuwa takamaiman CPUs.
  • Ƙara zaɓin "-xlockmem" don iyakance girman ƙwaƙwalwar ajiya.
  • Bayar da ikon adana bayanan tsari (USDT) tsakanin dtprobed sake kunnawa.
  • Taimako don tsarin BTF (BPF Type Format), wanda ke ba da bayanin duba nau'in a cikin lambar BPF.
  • Ikon amfani da rubutun saitin don ginawa.

source: budenet.ru

Add a comment