Hermit, orodje za kontrolirano testiranje in odkrivanje napak

puščavnik

Hermit kot vsebnik, ki ga je mogoče ponoviti, daje idejo o tem, kako bi bilo, če bi sistemski sklad zagotavljal ponovljivost kot abstrakcijo

Facebook predstavljen nedavno prek publikacije, lansiranje Puščavnik, ki tvori a okolje za deterministično izvajanje programa, ki omogoča doseganje enakega rezultata in ponavljanje postopka izvajanja pri različnih zagonih z uporabo istih vhodnih podatkov.

Med običajnim izvajanjem na izhod vplivajo različni zunanji dejavniki, kot so trenutni čas, funkcije razporejanja niti, naslovi navideznega pomnilnika, podatki iz generatorja psevdonaključnih števil in različni edinstveni identifikatorji.

Hermit omogoča izvajanje programa v vsebniku kjer ti dejavniki ostanejo nespremenjeni v naslednjih vožnjah. Ponovljiva izvedba, ki v celoti reproducira konfiguracijo nestanovitnega okolja, se lahko uporablja za diagnosticiranje napak, odpravljanje napak večstopenjsko z iteracijami, ustvarjanje fiksnega okolja za regresijsko testiranje, stresno testiranje, večnitno odpravljanje težav in ponovljive gradbene sisteme.

Hermit vsiljuje deterministično izvajanje poljubnih programov in deluje kot ponovljiv ovoj. To pomeni, da hermetično izolira program od virov nedeterminizma, kot so časovni razpored, prepletanje niti, generiranje naključnih števil itd. Zagotovljena determiniranost je močno orodje in služi kot osnova za številne aplikacije, vključno s stresnim testiranjem sočasnosti, snemanjem/ponovnim predvajanjem, ponovljivimi izgradnjami in samodejno diagnozo napak sočasnosti ter več.

Hermit ne more izolirati gostujočega programa od virov nedeterminizma, kot so spremembe datotečnega sistema ali odzivi zunanjih omrežij. Namesto tega mora uporabnik za zagotovitev popolnega determinizma zagotoviti fiksno osnovno sliko datotečnega sistema (na primer z Dockerjem) in onemogočiti zunanja omrežja.

O puščavniku

Puščavnik omogoča moč ustvarja ponovljivo okolje s prestrezanjem sistemskih klicev, od katerih so nekateri nadomeščeni z lastnimi obdelovalci, ki proizvajajo stalen izhod, nekateri pa so preusmerjeni v jedro, po katerem se neobstojni podatki odstranijo iz izhoda.

Za prestrezanje klicev Sistemu, uporablja se okvir zasanjanost, katerega kodo objavlja tudi Facebook. Če želite preprečiti, da bi spremembe datotečnega sistema in omrežne zahteve vplivale na napredek izvajanja, izvedba se izvede z uporabo mirujoče slike datotečnega sistema in z onemogočenim dostopom do zunanjih omrežij. Z dostopom do generatorja psevdonaključnih števil Hermit ustvari vnaprej določeno zaporedje, ki se ponovi vsakič, ko se izvede.

Najbolj zapleten vir nedeterminizma je v razporejevalniku niti. Način, kako jedro načrtuje niti, je odvisen od številnih zunanjih dejavnikov, vključno s številom fizičnih procesorjev ali drugih niti, ki se izvajajo v sistemu in zahtevajo čas procesorja.

Od kompleksnejših nestalnih vplivov na uspešnost, poudari razporejevalnik niti, katerega vedenje je odvisno od številnih zunanjih dejavnikov, kot je število jeder procesorja in prisotnost drugih tekočih niti.

Za zagotovitev ponovljivega delovanja razporejevalnika, so vse niti serializirane, vezane na eno jedro CPU in v vrstnem redu, v katerem se nadzor prenaša na niti. Vsaki niti je omogočeno izvajanje fiksnega števila navodil, po katerem se izvajanje ustavi in ​​prenese na drugo nit (za omejitev se uporablja CPU PMU (Performance Monitoring Unit), ki zaustavi izvajanje po določenem številu pogojnih vej).

diagnosticirati težave z niti zaradi dirkalnega stanja, Hermit ima način za zaznavanje operacij, ki niso bile v redu in povzročil blokado. Za odkrivanje takšnih težav se naredi primerjava med stanji, v katerih je bilo registrirano pravilno delovanje in nenormalen zaključek izvajanja.

Nazadnje, če vas zanima, da bi o tem izvedeli več, morate to vedeti kodo projekta napisan je v Rustu in se distribuira pod licenco BSD.

Podrobnosti lahko preverite v naslednjo povezavo.


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Odgovoren za podatke: AB Internet Networks 2008 SL
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.