Facebook dasturni takroriy bajarish uchun Hermit asboblar to'plamini nashr etadi

Facebook (Rossiya Federatsiyasida taqiqlangan) Hermit asboblar to'plamining kodini nashr etdi, bu dasturlarning deterministik bajarilishi uchun muhit yaratib, bir xil natijaga erishish va bir xil kiritilgan ma'lumotlardan foydalangan holda bajarishni takrorlash imkonini beradi. Loyiha kodi Rust-da yozilgan va BSD litsenziyasi ostida tarqatiladi.

Oddiy bajarilish vaqtida natijaga joriy vaqt, mavzuni rejalashtirish, virtual xotira manzillari, psevdor tasodifiy raqamlar generatoridan olingan ma'lumotlar va turli xil noyob identifikatorlar kabi turli xil begona omillar ta'sir qiladi. Hermit dasturni konteynerda ishga tushirishga imkon beradi, unda bu omillar keyingi ishga tushirishda doimiy bo'lib qoladi. Atrof-muhitning doimiy bo'lmagan parametrlarini to'liq takrorlaydigan takrorlanadigan bajarish xatolarni tashxislash, takroriy yugurishlar bilan ko'p bosqichli disk raskadrovka, regressiya testlari uchun barqaror muhit yaratish, stress testlari, ko'p qirrali va takrorlanadigan qurish tizimlarida muammolarni aniqlash uchun ishlatilishi mumkin. .

Facebook dasturni takroriy bajarish uchun Hermit asboblar to'plamini nashr etadi

Qayta ishlab chiqariladigan muhit tizim chaqiruvlarini ushlab turish orqali yaratiladi, ularning ba'zilari doimiy natija beradigan o'zlarining ishlov beruvchilari bilan almashtiriladi, ba'zilari esa yadroga yo'naltiriladi, shundan so'ng natija doimiy bo'lmagan ma'lumotlardan tozalanadi. Tizim qo'ng'iroqlarini ushlab turish uchun kodi Facebook tomonidan nashr etilgan reverie ramkasidan foydalaniladi. Fayl tizimidagi va tarmoq so'rovlaridagi o'zgarishlar ijro etilish jarayoniga ta'sir qilishini oldini olish uchun, ijro etish belgilangan FS tasviri yordamida va tashqi tarmoqlarga kirish o'chirilgan holda amalga oshiriladi. Pseudo-tasodifiy raqamlar generatoriga kirishda Hermit har safar ishga tushirilganda takrorlanadigan oldindan belgilangan ketma-ketlikni ishlab chiqaradi.

Amalga oshirish jarayoniga eng murakkab o'zgaruvchan ta'sirlardan biri bu ish rejasini tuzuvchidir, uning xatti-harakati ko'plab tashqi omillarga bog'liq, masalan, CPU yadrolari soni va boshqa bajaruvchi iplarning mavjudligi. Rejalashtiruvchining takrorlanadigan harakatini ta'minlash uchun barcha oqimlar faqat bitta protsessor yadrosi bilan bog'langan holda ketma-ket bajariladi va boshqaruvni iplarga o'tkazish tartibini saqlaydi. Har bir ipga belgilangan miqdordagi ko'rsatmalarni bajarishga ruxsat beriladi, shundan so'ng bajarish to'xtatiladi va boshqa ish zarrachasiga o'tkaziladi (belgilangan shartli filiallardan keyin bajarilishini to'xtatuvchi CPU PMU (Ishlash monitoringi birligi) ni cheklash uchun).

Poyga sharoitlari tufayli iplar bilan bog'liq muammolarni tashxislash uchun Hermitda bajarish tartibi tartibsiz bo'lgan va g'ayritabiiy yopilishga olib kelgan operatsiyalarni aniqlash rejimi mavjud. Bunday muammolarni aniqlash uchun to'g'ri ishlash va bajarishning g'ayritabiiy tugashi qayd etilgan holatlar taqqoslanadi.

Manba: opennet.ru

a Izoh qo'shish