Hermit, työkalu kontrolloituun testaukseen ja virheiden havaitsemiseen

erakko

Hermit toistettavana säiliönä antaa käsityksen siitä, millaista olisi, jos järjestelmäpino antaisi toistettavuuden abstraktiona

Facebook paljasti äskettäin julkaistun julkaisun kautta erakko, joka muodostaa a ympäristö ohjelman deterministiselle suorittamiselle, joka mahdollistaa saman tuloksen saavuttamisen ja suoritusprosessin toistamisen eri käynnistyksissä samoilla syöttötiedoilla.

Normaalin suorituksen aikana ulostuloon vaikuttavat useat ulkopuoliset tekijät, kuten nykyinen aika, säikeen ajoitustoiminnot, virtuaalimuistiosoitteet, näennäissatunnaislukugeneraattorin tiedot ja erilaiset yksilölliset tunnisteet.

Hermit mahdollistaa ohjelman suorittamisen säiliössä jossa nämä tekijät pysyvät vakioina seuraavissa ajoissa. Toistettava suoritus, joka toistaa täysin haihtuvan ympäristön kokoonpanon, voidaan käyttää virheiden diagnosointiin, virheenkorjaukseen monivaiheinen iteraatioilla, kiinteän ympäristön luominen regressiotestausta, stressitestausta, monisäikeistä vianetsintää ja toistettavia rakennusjärjestelmiä varten.

Erakko pakottaa mielivaltaisten ohjelmien deterministiseen suorittamiseen ja toimii toistettavana kääreenä. Toisin sanoen se eristää ohjelman hermeettisesti epädeterminismin lähteistä, kuten ajoituksesta, säikeiden lomituksesta, satunnaislukujen luomisesta jne. Taattu determinismi on tehokas työkalu, ja se toimii perustana useille sovelluksille, mukaan lukien samanaikaisuuden stressitestaus, tallennus/toisto, toistettavat koontiversiot ja automaattinen samanaikaisuusvirheiden diagnoosi.

Hermit ei voi eristää vierasohjelmaa epädeterminismin lähteistä, kuten tiedostojärjestelmän muutoksista tai vastauksista ulkoisista verkoista. Täydellisen determinismin saavuttamiseksi käyttäjän on sen sijaan annettava kiinteä tiedostojärjestelmän peruskuva (esimerkiksi Dockerin kanssa) ja poistettava ulkoiset verkot käytöstä.

Tietoja Eremitistä

erakko mahdollistaa tehon luo toistettavan ympäristön sieppaamalla järjestelmäkutsuja, joista osa korvataan omilla käsittelijöillä, jotka tuottavat jatkuvaa lähtöä, ja osa ohjataan ytimeen, minkä jälkeen ei-pysyvä data poistetaan lähdöstä.

Puhelujen sieppaamiseen Järjestelmään, kehystä käytetään unelmointi, jonka koodi on myös Facebookin julkaisema. Jotta tiedostojärjestelmän muutokset ja verkkopyynnöt eivät vaikuta suorituksen edistymiseen, suoritus suoritetaan käyttämällä still-kuvaa tiedostojärjestelmästä ja pääsy ulkoisiin verkkoihin on estetty. Käyttämällä näennäissatunnaislukugeneraattoria Hermit tuottaa ennalta määritellyn sekvenssin, joka toistetaan joka kerta, kun se suoritetaan.

Monimutkaisin epädeterminismin lähde on säikeen ajoittaja. Tapa, jolla ydin ajoittaa säikeet, riippuu monista ulkoisista tekijöistä, mukaan lukien fyysisten prosessorien tai muiden järjestelmässä käynnissä olevien, suoritinaikaa vaativien säikeiden määrä.

Monimutkaisimmista suorituskykyyn vaikuttavista ei-pysyvistä vaikutuksista korostaa säikeen ajoitusta, jonka käyttäytyminen riippuu monista ulkoisista tekijöistä, kuten suorittimen ytimien määrästä ja muiden käynnissä olevien säikeiden läsnäolosta.

Varmistaaksesi ajoittajan toistuvan toiminnan, kaikki säikeet on serialisoitu ja sidottu yhteen CPU-ytimeen ja siinä järjestyksessä, jossa ohjaus välitetään säikeille. Kukin säiettä saa suorittaa kiinteän määrän käskyjä, minkä jälkeen suoritus pysäytetään ja siirretään toiseen säikeeseen (rajoittamiseen käytetään CPU PMU:ta (Performance Monitoring Unit), joka pysäyttää suorituksen tietyn määrän ehdollisia haaroja jälkeen).

diagnosoimaan kilpailutilanteesta johtuvia lankojen ongelmia, Hermit on tila epäkunnossa olevien toimintojen havaitsemiseksi ja aiheutti saarron. Tällaisten ongelmien tunnistamiseksi verrataan niitä tiloja, joissa oikea toiminta ja suorituksen epänormaali lopettaminen on rekisteröity.

Lopuksi, jos olet kiinnostunut saamaan lisätietoja siitä, sinun pitäisi tietää se projektin koodi se on kirjoitettu rust-kielellä ja sitä jaetaan BSD-lisenssillä.

Voit tarkistaa tiedot sisään seuraava linkki.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastaa tiedoista: AB Internet Networks 2008 SL
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.