Kompania Oracle publikoi DTrace për Linux 2.0.0-1.14

ËshtĂ« prezantuar njĂ« edicion eksperimental i mjetit tĂ« ndihmĂ«s dinamike DTrace pĂ«r Linux 2.0.0-1.14, i realizuar si njĂ« proces nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit, qĂ« pĂ«rdor nĂ«n-sistemin e eBPF dhe mekanizmat e ndjekjes qĂ« ofrohen nga bĂ«rthama Linux. NĂ« funksionalitet, implementimi DTrace i bazuar nĂ« eBPF Ă«shtĂ« afĂ«r implementimit tĂ« parĂ« tĂ« DTrace pĂ«r Linux, i bĂ«rĂ« nĂ« formĂ«n e njĂ« moduli bĂ«rthamor. Kodi i projektit shpĂ«rndahet nĂ«n licencĂ«n GPLv2.

Mjeti mund të përdoret me bërthamat standarde të Linux që mbështesin BPF. Për funksionimin kërkohet biblioteka libctf me implementimin e mbështetjes për formatin e ndihmës CTF (Compact Type Format), e cila është pjesë e paketës binutils, duke filluar nga shpërndarja 2.40, ose biblioteka libdtrace-ctf, e portuar nga Solaris. Ofrohen dy patches opsionale për bërthamën 6.7, që lejojnë aktivizimin e mundësive të zgjeruara për të marrë të dhëna shtesë mbi modulet dhe bërthamën.

Teknologjia DTrace është zhvilluar për të adresuar detyrat e ndjekjes dinamike të bërthamës dhe aplikacioneve përfundimtare në sistemin operativ Solaris. DTrace i ofron përdoruesit mundësinë për të ndjekur në detaje sjelljen e sistemit dhe për të diagnostikuar problemet në kohë reale. Gjatë procesit të ndihmës, DTrace nuk ndikon në veprimin e aplikacioneve të hetuara dhe nuk ndikon në performancën e tyre, duke lejuar analizën e sistemeve në funksion. Nga përfitimet e DTrace është gjuha e nivelit të lartë D, e ngjashme me AWK, në të cilën është shumë më e lehtë të krijohen skenarë ndihme sesa duke përdorur mjetet e propozuara për eBPF për të shkruar trajtues në gjuhët C, Python dhe Lua me biblioteka të jashtme.

Funksionalitetet kryesore:

  • Ofertat e disponueshme:
    • cpc (CPU Performacne Counter) - marrja e informacionit mbi performancĂ«n.
    • dtrace - trajtuesit BEGIN, END dhe ERROR, qĂ« aktivizohen para ose pas kontrolleve tĂ« tjera, si dhe kur ndodhin gabime.
    • fbt (Function Boundary Tracing) - ndjekja e thirrjeve nĂ« funksionet e bĂ«rthamĂ«s.
    • lockstat - ndjekja e gjendjes sĂ« bllokimeve.
    • pid - ndjekja e thirrjeve nĂ« funksionet nĂ« proceset qĂ« punojnĂ« nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit.
    • proc - ndjekja e aktiviteteve qĂ« lidhen me proceset, siç janĂ« nisja dhe pĂ«rfundimi (fork, exec, exit, fault).
    • profile - ruajtja e statistikave mbi performancĂ«n nĂ«pĂ«rmjet intervaleve tĂ« specifikuara.
    • sdt, rawtp - ndihmĂ« statike pĂ«r bĂ«rthamĂ«n (SDT - Statically Defined Tracing).
    • usdt: ndihmĂ« statike pĂ«r aplikacione (USDT - Userspace Statically Defined Tracing)
    • sched - ndjekja e shpĂ«rndarjes sĂ« burimeve tĂ« CPU.
    • sycall - ndjekja e hyrjes nĂ« thirrjet sistemike dhe daljes nga ato.
  • Agregimi i tĂ« dhĂ«nave tĂ« mbledhura: mundĂ«sia e pĂ«rdorimit tĂ« funksioneve agregate (avg, count, llquantize, lquantize, max, min, quantize, stddev dhe sum) dhe veprimeve agregate (clear, normalize, printa). MbĂ«shtetje pĂ«r ruajtjen e rezultateve tĂ« aplikimit tĂ« funksioneve agregate nĂ« array normale dhe asociative.
  • MbĂ«shtetje pĂ«r ndihmĂ«n spekulative, duke lejuar ndjekjen efemere tĂ« tĂ« dhĂ«nave, duke vendosur se cilat prej tyre duhet tĂ« regjistrohen nĂ« bufferin e ndihmĂ«s dhe cilat duhet tĂ« hidhen. Funksionet e disponueshme: speculation, speculate, commit dhe discard.
  • MbĂ«shtetje pĂ«r variablat globalĂ« dhe lokalĂ«, TLS (Thread-Local Storage), array asocijuese dhe vargje.
  • Ofrimi i variablave tĂ« integruar: arg0 — arg9, args[], caller, curcpu, curthread, epid, errno, execname, gid, id, pid, ppid, probefunc, probemod, probename, probeprov, stackdepth, tid, timestamp, ucaller, uid, uregs[], ustackdepth, walltimestamp.
  • MbĂ«shtetje pĂ«r veprimet: exit, freopen, ftruncate, mod, printa, printf, raise, setopt, stack, sym, system, trace, tracemem, uaddr, umod, ustack dhe usym.
  • Prania e funksioneve tĂ« integruara: 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_spin, ntohl, ntohll, ntohs, progenyof, rand, rindex, rw_iswriter, rw_read_held, rw_write_held, strchr, strjoin, strlen, strrchr, strstr, strtok, substr.
  • Prania e numĂ«ruesve tĂ« dhĂ«nash, qĂ« nuk bien nĂ« buferat e ndihmĂ«s.
  • MbĂ«shtetje pĂ«r kompilimin e skenarĂ«ve tĂ« ndihmĂ«s nĂ« gjuhĂ«n D nĂ« formĂ«n e programeve BPF.
  • Parakompilimi i funksioneve BPF pĂ«r thirrjet e bibliotikĂ«s.
  • Opsioni bpflog pĂ«r marrjen e logut tĂ« verifikimit tĂ« programeve BPF qĂ« ngarkohen.
  • Generimi dinamik i kodit dhe parakompilimi i kodit pĂ«r pĂ«rdorim tĂ« ripĂ«rsĂ«ritur nĂ« programet BPF.

Ndryshimet në versionin e ri:

  • NĂ« ofruesin pid, i aplikuar pĂ«r ndjekjen e proceseve nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit, Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r ndjekjen e ekzekutimit tĂ« instruksioneve sipas offsetit tĂ« tyre nĂ« kod.
  • Shtuar mbĂ«shtetje pĂ«r pĂ«rdorimin e funksioneve stack() dhe ustack() pĂ«r agregimin e tĂ« dhĂ«nave tĂ« mbledhura.
  • MundĂ«sia e eliminimit tĂ« elementeve tĂ« çdo tipi nga array asocijuese pĂ«rmes caktimit tĂ« literalit 0.
  • Shtuar veprimi print pĂ«r tĂ« printuar tĂ« dhĂ«nat e strukturuara me annotime tĂ« tipeve.
  • Shtuar funksione tĂ« reja tĂ« integruara cleanpath(), d_path() dhe link_ntop().
  • Shtuar parametri «-xcpu», i cili lejon lidhjen e kontrollimeve me CPU tĂ« caktuara.
  • Shtuar parametri «-xlockmem» pĂ«r tĂ« kufizuar madhĂ«sinĂ« e memorisĂ«.
  • Siguruar mundĂ«sinĂ« e ruajtjes sĂ« tĂ« dhĂ«nave tĂ« ndjekjes sĂ« proceseve (USDT) midis rilindjeve tĂ« dtprobed.
  • MbĂ«shtetje pĂ«r mekanizmin BTF (BPF Type Format), i cili ofron informacion pĂ«r verifikimin e llojeve nĂ« pseudokod BPF.
  • MundĂ«si pĂ«r tĂ« pĂ«rdorur skriptin configure pĂ«r ndĂ«rtim.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster