Ermitas, kontroliuojamo testavimo ir klaidų aptikimo įrankis

atsiskyrėlis

Atsiskyrėlis, kaip atkuriamas konteineris, suteikia idėją, kaip būtų, jei sistemos krūva pateiktų pakartojamumą kaip abstrakciją

„Facebook“ pristatė neseniai per leidinį, paleisti Ermitas, kuris sudaro a aplinka deterministiniam programos vykdymui, kuri leidžia pasiekti tą patį rezultatą ir pakartoti vykdymo procesą įvairiais paleidimais naudojant tuos pačius įvesties duomenis.

Įprasto vykdymo metu išvestį veikia įvairūs pašaliniai veiksniai, tokie kaip dabartinis laikas, gijų planavimo funkcijos, virtualios atminties adresai, duomenys iš pseudoatsitiktinių skaičių generatoriaus ir įvairūs unikalūs identifikatoriai.

Hermit leidžia paleisti programą konteineryje kur šie veiksniai išlieka pastovūs vėlesniuose važiavimuose. Pakartotinis vykdymas, kuris visiškai atkuria nepastovios aplinkos konfigūraciją, gali būti naudojamas klaidų diagnostikai, derinimui kelių žingsnių su iteracijomis, sukuriant fiksuotą aplinką regresijos testavimui, testavimui nepalankiausiomis sąlygomis, kelių gijų trikčių šalinimui ir pakartojamoms kūrimo sistemoms.

Atsiskyrėlis verčia deterministiškai vykdyti savavališkas programas ir veikia kaip atkuriamas paketas. Tai yra, ji hermetiškai izoliuoja programą nuo nedeterminizmo šaltinių, tokių kaip laikas, gijų persipynimas, atsitiktinių skaičių generavimas ir kt. Garantuotas determinizmas yra galingas įrankis ir naudojamas kaip daugelio programų pagrindas, įskaitant lygiagretumo testavimą nepalankiausiomis sąlygomis, įrašymą / pakartojimą, atkuriamą kūrimą ir automatinę lygiagretumo klaidų diagnostiką ir kt.

Hermit negali atskirti svečio programos nuo nedeterminizmo šaltinių, pvz., failų sistemos pakeitimų ar atsakymų iš išorinių tinklų. Vietoj to, norėdamas užtikrinti visišką determinizmą, vartotojas turi pateikti fiksuotą failų sistemos bazinį vaizdą (pavyzdžiui, su Docker) ir išjungti išorinius tinklus.

Apie Atsiskyrėlį

Ermitas leidžia galia sukuria atkuriamą aplinką perimdami sistemos iškvietimus, kai kurie iš jų pakeičiami savo tvarkyklėmis, kurios gamina pastovią išvestį, o kai kurios nukreipiamos į branduolį, o po to nepaliaujami duomenys pašalinami iš išvesties.

Norėdami perimti skambučius Į sistemą, naudojamas karkasas pamišimas, kurio kodą taip pat skelbia „Facebook“. Kad failų sistemos pakeitimai ir tinklo užklausos nepaveiktų vykdymo, vykdymas atliekamas naudojant nejudantį vaizdą failų sistemos ir išjungus prieigą prie išorinių tinklų. Pasiekęs pseudoatsitiktinių skaičių generatorių, Hermit sukuria iš anksto nustatytą seką, kuri kartojama kiekvieną kartą, kai ji vykdoma.

Sudėtingiausias nedeterminizmo šaltinis yra gijų planavimo priemonėje. Branduolio gijų planavimo būdas priklauso nuo daugelio išorinių veiksnių, įskaitant fizinių procesorių ar kitų sistemoje veikiančių gijų, kurioms reikia procesoriaus laiko, skaičių.

Iš sudėtingesnių nenuolatinių įtakų našumui, pabrėžia gijų planavimo priemonę, kurio elgesys priklauso nuo daugelio išorinių veiksnių, tokių kaip procesoriaus branduolių skaičius ir kitų veikiančių gijų buvimas.

Kad būtų užtikrintas kartojamas planuotojo elgesys, visos gijos yra serijinės, susietos su vienu procesoriaus branduoliu ir ta tvarka, kuria valdymas perduodamas gijomis. Kiekvienai gijai leidžiama vykdyti fiksuotą skaičių instrukcijų, po kurių vykdymas sustabdomas ir perkeliamas į kitą giją (ribojimui naudojamas CPU PMU (Performance Monitoring Unit), kuris sustabdo vykdymą po nurodyto skaičiaus sąlyginių šakų).

Diagnozuoti problemų su siūlais dėl lenktynių būklės, Atsiskyrėlis turi režimą, leidžiantį aptikti operacijas, kurios buvo netinkamos ir sukėlė blokadą. Siekiant nustatyti tokias problemas, palyginamos būsenos, kuriose buvo užregistruota teisinga operacija ir nenormalus vykdymo nutraukimas.

Galiausiai, jei jus domina galimybė apie tai sužinoti daugiau, turėtumėte tai žinoti projekto kodas jis parašytas Rust ir platinamas pagal BSD licenciją.

Išsamią informaciją galite patikrinti šią nuorodą.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Už duomenis atsakingas: AB Internet Networks 2008 SL
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.