Oracle gen entansyon redesign DTrace pou Linux lè l sèvi avèk eBPF

Konpayi Oracle rapòte sou travay sou transfere chanjman ki gen rapò ak DTrace nan en ak plan yo aplike DTrace dinamik debogaj teknoloji sou tèt enfrastrikti estanda Linux nwayo a, sètadi lè l sèvi avèk subsystems tankou eBPF. Okòmansman, pwoblèm prensipal la ak itilizasyon DTrace sou Linux te enkonpatibilite nan nivo lisans, men nan 2018 Oracle. relisansye Kòd DTrace anba GPLv2.

DTrace deja lontan yo ofri kòm yon pati nan yon nwayo pwolonje pou distribisyon an Oracle Linux, men pou itilize li nan lòt distribisyon li mande pou yo sèvi ak plak nwayo adisyonèl, ki limite itilizasyon teknoloji sa a. Kòm yon egzanp, Oracle prepare enstriksyon detaye pou enstale ak itilize DTrace sou Fedora Linux. Asanble obligatwa pou enstalasyon zouti ak itilizasyon yon nwayo Linux rebati soti nan plak. Yo pwopoze li pou otomatize ekzekisyon bilding nwayo ak plak Oracle ak Fedora script.

eBPF se yon entèprèt bytecode ki entegre nan nwayo Linux la ki pèmèt ou kreye moun kap okipe operasyon rezo a, kontwole operasyon sistèm, entèsepte apèl sistèm, aksè kontwòl, pwosesis evènman ak timekeeping (perf_event_open), konte frekans ak tan ekzekisyon operasyon yo, fè trase lè l sèvi avèk kprobes. /uprobes /tracepoints. Mèsi a itilize nan konpilasyon JIT, bytecode tradui sou vole nan enstriksyon machin ak egzekite ak pèfòmans nan kòd natif natal. DTrace ka aplike sou tèt eBPF, menm jan ak fason li aplike sou tèt eBPF rabè zouti trase ki egziste deja.

Teknoloji DTrace te devlope pou sistèm operasyon Solaris la pou rezoud pwoblèm nan dinamik trase nwayo sistèm lan ak aplikasyon pou fen, bay itilizatè a kapasite pou kontwole konpòtman sistèm an detay ak dyagnostike pwoblèm nan tan reyèl. Pandan pwosesis debogaj la, DTrace pa afekte operasyon aplikasyon yo anba etid epi yo pa afekte pèfòmans yo nan okenn fason, ki pèmèt ou òganize analiz la nan sistèm kouri sou vole. Youn nan fòs DTrace se langaj D wo nivo, menm jan ak AWK, kote li pi fasil pou kreye script trase pase lè l sèvi avèk zouti yo ofri pou ekri moun kap okipe eBPF nan C, Python ak Lua ak bibliyotèk ekstèn.

Enjenyè ki soti nan Oracle ap travay tou sou kreye yon backend eBPF pou GCC epi yo deja pibliye seri plak pou entegre sipò eBPF nan GCC ak reyalize enkli kòd pou sipòte eBPF nan GNU binutils. Okòmansman, backend la pou sipò eBPF baze sou teknoloji LLVM, men Oracle enterese nan aparans nan GCC nan yon kapasite estanda pou jenere pwogram pou eBPF, ki pral pèmèt itilizasyon yon sèl zouti tou de pou bati nwayo Linux la ak pou bati pwogram. pou eBPF.

Anplis backend jenerasyon bytecode, patch yo pwopoze pou GCC gen ladan tou yon pò libgcc pou eBPF ak zouti pou jenere fichye ELF, sa ki fè li posib pou egzekite kòd nan machin vityèl eBPF lè l sèvi avèk chajè nwayo bay. Pou kounye a, kòd nan lang C a ka tradui nan bytecode (se pa tout karakteristik lang ki disponib), men nan lavni li espere elaji kapasite lang C ki disponib pou itilize, ajoute sipò pou lòt lang, kreye yon similatè, ak ajoute sipò GCC pou debogaj pwogram eBPF san yo pa chaje nan nwayo a.

Sous: opennet.ru

Add nouvo kòmantè