Oracle Linux uchun DTrace tizimini eBPF yordamida qayta ishlash niyatida

Oracle kompaniyasi xabar berdi DTrace bilan bog'liq o'zgarishlarni yuqori oqimga o'tkazish bo'yicha ishlar va standart Linux yadro infratuzilmasi ustiga DTrace dinamik disk raskadrovka texnologiyasini, xususan, eBPF kabi quyi tizimlardan foydalanishni amalga oshirish rejalari haqida. Dastlab, Linux-da DTrace-dan foydalanishning asosiy muammosi litsenziya darajasida mos kelmaslik edi, ammo 2018 yilda Oracle qayta litsenziyalangan GPLv2 ostida DTrace kodi.

DTrace allaqachon uzoq vaqt Oracle Linux tarqatish uchun kengaytirilgan yadroning bir qismi sifatida taklif etiladi, ammo uni boshqa distributivlarda ishlatish uchun u qoΚ»shimcha yadro yamoqlaridan foydalanishni talab qiladi, bu esa ushbu texnologiyadan foydalanishni cheklaydi. Misol tariqasida Oracle tayyorlangan Fedora Linux-da DTrace-ni o'rnatish va ishlatish bo'yicha batafsil ko'rsatmalar. O'rnatish uchun yig'ish kerak asboblar va qayta qurilgan Linux yadrosidan foydalanish yamoqlar. Oracle va Fedora yamoqlari yordamida yadro qurilishini avtomatlashtirish taklif etiladi. skript.

eBPF - bu Linux yadrosiga o'rnatilgan bayt-kod tarjimoni bo'lib, u sizga tarmoq operatsiyalari ishlov beruvchilarini yaratish, tizim ishini kuzatish, tizim qo'ng'iroqlarini ushlab turish, kirishni boshqarish, vaqtni hisoblash (perf_event_open) bilan hodisalarni qayta ishlash, operatsiyalarning chastotasi va bajarilish vaqtini hisoblash, kproblar yordamida kuzatishni amalga oshirish imkonini beradi. / problar / kuzatuv nuqtalari. JIT kompilyatsiyasidan foydalanish tufayli bayt-kod tezda mashina ko'rsatmalariga tarjima qilinadi va mahalliy kodning ishlashi bilan bajariladi. DTrace eBPF tepasida amalga oshirilishi mumkin, xuddi u eBPF ustiga qo'llanilishi kabi ishlaydi mavjud kuzatuv vositalari.

DTrace texnologiyasi Solaris operatsion tizimi uchun tizim yadrosi va oxirgi ilovalarni dinamik ravishda kuzatish muammosini hal qilish uchun ishlab chiqilgan bo'lib, foydalanuvchiga tizim xatti-harakatlarini batafsil kuzatish va real vaqtda muammolarni tashxislash imkoniyatini beradi. Nosozliklarni tuzatish jarayonida DTrace o'rganilayotgan ilovalarning ishlashiga ta'sir qilmaydi va ularning ishlashiga hech qanday ta'sir ko'rsatmaydi, bu esa ishlaydigan tizimlar tahlilini tezda tashkil qilish imkonini beradi. DTrace ning kuchli tomonlaridan biri bu AWK ga o'xshash yuqori darajadagi D tili bo'lib, unda tashqi kutubxonalar bilan C, Python va Lua tillarida eBPF ishlov beruvchilarini yozish uchun taklif qilingan vositalardan foydalanishdan ko'ra kuzatuv skriptlarini yaratish ancha osondir.

Oracle muhandislari, shuningdek, GCC uchun eBPF backend yaratish ustida ishlamoqda va allaqachon nashr etishgan yamoq to'plami eBPF qo'llab-quvvatlashini GCCga integratsiya qilish va qildilar GNU binutils-da eBPF-ni qo'llab-quvvatlash uchun kodni o'z ichiga oladi. Dastlab, eBPF-ni qo'llab-quvvatlash uchun backend LLVM texnologiyalariga asoslangan, ammo Oracle GCC-da eBPF uchun dasturlarni yaratish uchun standart qobiliyatning paydo bo'lishi bilan qiziqadi, bu Linux yadrosini yaratish va dasturlarni yaratish uchun bitta asboblar to'plamidan foydalanishga imkon beradi. eBPF uchun.

Bayt-kod ishlab chiqarishdan tashqari, GCC uchun tavsiya etilgan yamoqlar, shuningdek, eBPF uchun libgcc portini va ELF fayllarini yaratish vositalarini o'z ichiga oladi, bu esa yadro tomonidan taqdim etilgan yuklagichlar yordamida eBPF virtual mashinasida kodni bajarish imkonini beradi. Hozircha C tilidagi kodni bayt-kodga tarjima qilish mumkin (barcha til xususiyatlari mavjud emas), lekin kelajakda foydalanish uchun mavjud bo'lgan C tili imkoniyatlarini kengaytirish, boshqa tillarni qo'llab-quvvatlash, simulyator yaratish va boshqalar kutilmoqda. yadroga yuklamasdan eBPF dasturlarini disk raskadrovka qilish uchun GCC qo'llab-quvvatlashini qo'shing.

Manba: opennet.ru

a Izoh qo'shish