Oracle hyggst endurhanna DTrace fyrir Linux með eBPF

Oracle fyrirtæki greint frá um vinnu við að flytja DTrace-tengdar breytingar yfir á andstreymis og áform um að innleiða DTrace kraftmikla villuleitartækni ofan á hefðbundinn Linux kjarnainnviði, nefnilega með því að nota undirkerfi eins og eBPF. Upphaflega var aðalvandamálið við notkun DTrace á Linux ósamrýmanleiki á leyfisstigi, en árið 2018 Oracle endurleyfishafi DTrace kóða undir GPLv2.

DTrace þegar langur tími er boðið sem hluti af útvíkkuðum kjarna fyrir Oracle Linux dreifinguna, en til notkunar í öðrum dreifingum þarf hann að nota viðbótarkjarnaplástra, sem takmarkar notkun þessarar tækni. Sem dæmi, Oracle undirbúinn nákvæmar leiðbeiningar um uppsetningu og notkun DTrace á Fedora Linux. Samsetning nauðsynleg fyrir uppsetningu verkfæri og notkun á Linux kjarna sem endurbyggður er úr plástra. Til að gera sjálfvirkan framkvæmd kjarnabyggingar með Oracle og Fedora plástrum er lagt til handrit.

eBPF er bætakóða túlkur innbyggður í Linux kjarnann sem gerir þér kleift að búa til netaðgerðastjórnun, fylgjast með kerfisaðgerðum, stöðva kerfissímtöl, stjórna aðgangi, vinna úr atburðum með tímatöku (perf_event_open), telja tíðni og framkvæmdartíma aðgerða, framkvæma rakningu með kprobes /uprobes /tracepoints. Þökk sé notkun JIT samantektar er bætikóði þýddur á flugi í vélaleiðbeiningar og keyrður með frammistöðu innfædds kóða. Hægt er að útfæra DTrace ofan á eBPF, svipað og það er útfært ofan á eBPF работают núverandi rakningartæki.

DTrace tæknin var þróuð fyrir Solaris stýrikerfið til að leysa vandamálið við að rekja kerfiskjarna og lokaforrit á virkan hátt, sem gefur notandanum möguleika á að fylgjast með hegðun kerfisins í smáatriðum og greina vandamál í rauntíma. Meðan á kembiforritinu stendur hefur DTrace ekki áhrif á rekstur forritanna sem verið er að rannsaka og hefur ekki á nokkurn hátt áhrif á frammistöðu þeirra, sem gerir þér kleift að skipuleggja greiningu á keyrandi kerfum á flugu. Einn af styrkleikum DTrace er D-málið á háu stigi, svipað og AWK, þar sem það er miklu auðveldara að búa til rakningarforskriftir en að nota verkfærin sem boðið er upp á til að skrifa eBPF meðhöndlun í C, Python og Lua með ytri bókasöfnum.

Verkfræðingar frá Oracle vinna einnig að því að búa til eBPF bakenda fyrir GCC og hafa þegar gefið út plástur sett að samþætta eBPF stuðning í GCC og náð þar á meðal kóða til að styðja eBPF í GNU binutils. Upphaflega er bakendi fyrir eBPF stuðning byggt á LLVM tækni, en Oracle hefur áhuga á að birtast í GCC staðlaða getu til að búa til forrit fyrir eBPF, sem gerir kleift að nota eitt verkfærasett bæði til að byggja upp Linux kjarnann og til að smíða forrit fyrir eBPF.

Til viðbótar við bækikóðaframleiðslu bakenda, innihalda fyrirhugaðir plástrar fyrir GCC einnig libgcc tengi fyrir eBPF og verkfæri til að búa til ELF skrár, sem gerir það mögulegt að keyra kóða í eBPF sýndarvélinni með því að nota kjarnahleðslutæki. Í bili er hægt að þýða kóða á C tungumálinu yfir í bækikóða (ekki eru allir tungumálaeiginleikar tiltækir), en í framtíðinni er gert ráð fyrir að auka C-málmöguleikana sem eru tiltækir til notkunar, bæta við stuðningi fyrir önnur tungumál, búa til hermir og bæta við GCC stuðningi fyrir villuleit á eBPF forritum án þess að hlaðast inn í kjarnann.

Heimild: opennet.ru

Bæta við athugasemd