Ermits, rīks kontrolētai pārbaudei un kļūdu noteikšanai

vientuļnieks

Ermits kā reproducējams konteiners sniedz priekšstatu par to, kā būtu, ja sistēmas kaudze nodrošinātu atkārtojamību kā abstrakciju

Facebook atklāja nesen ar publikāciju, uzsākot Hermīts, kas veido a vide deterministiskas programmas izpildei, kas ļauj sasniegt to pašu rezultātu un atkārtot izpildes procesu dažādos palaijumos, izmantojot vienus un tos pašus ievades datus.

Normālas izpildes laikā izvadi ietekmē dažādi ārēji faktori, piemēram, pašreizējais laiks, pavedienu plānošanas funkcijas, virtuālās atmiņas adreses, dati no pseidogadījuma skaitļu ģeneratora un dažādi unikāli identifikatori.

Hermit ļauj palaist programmu konteinerā kur šie faktori turpmākajos braucienos paliek nemainīgi. Atkārtojama izpilde, kas pilnībā atveido nepastāvīgās vides konfigurāciju, var izmantot kļūdu diagnostikai, atkļūdošanai daudzpakāpju ar iterācijām, izveidojot fiksētu vidi regresijas testēšanai, stresa testēšanai, vairāku pavedienu problēmu novēršanai un atkārtojamām veidošanas sistēmām.

Vientuļnieks liek deterministiski izpildīt patvaļīgas programmas un darbojas kā reproducējams iesaiņojums. Tas ir, tas hermētiski izolē programmu no nedeterminisma avotiem, piemēram, hronometrāžas, pavedienu savstarpējas pārklāšanas, nejaušu skaitļu ģenerēšanas utt. Garantētais determinisms ir spēcīgs rīks un kalpo par pamatu vairākām lietojumprogrammām, tostarp vienlaicīguma stresa testēšanai, ierakstīšanai/atkārtošanai, reproducējamām versijām un automātiskai vienlaicības kļūdu diagnostikai un citiem.

Hermit nevar izolēt viesu programmu no nedeterminisma avotiem, piemēram, failu sistēmas izmaiņām vai atbildēm no ārējiem tīkliem. Tā vietā, lai nodrošinātu pilnīgu determinismu, lietotājam ir jānodrošina fiksēts failu sistēmas bāzes attēls (piemēram, ar Docker) un jāatspējo ārējie tīkli.

Par Vientuļnieku

Hermīts ļauj jauda rada reproducējamu vidi pārtverot sistēmas izsaukumus, no kuriem daži tiek aizstāti ar saviem apstrādātājiem, kas rada pastāvīgu izvadi, un daži no tiem tiek novirzīti uz kodolu, pēc tam no izvades tiek noņemti nepastāvīgie dati.

Lai pārtvertu zvanus Uz sistēmu, tiek izmantots ietvars sapņot, kuras kodu publicē arī Facebook. Lai failu sistēmas izmaiņas un tīkla pieprasījumi neietekmētu izpildes gaitu, izpilde tiek veikta, izmantojot nekustīgu attēlu failu sistēmas un ar atspējotu piekļuvi ārējiem tīkliem. Piekļūstot pseidogadījuma skaitļu ģeneratoram, Hermit izveido iepriekš noteiktu secību, kas tiek atkārtota katru reizi, kad tā tiek izpildīta.

Sarežģītākais nedeterminisma avots ir pavedienu plānotājā. Veids, kā kodols plāno pavedienus, ir atkarīgs no daudziem ārējiem faktoriem, tostarp fizisko CPU vai citu sistēmā darbojošos pavedienu skaita, kuriem nepieciešams CPU laiks.

No sarežģītākām nepastāvīgām ietekmēm uz veiktspēju izceļ pavedienu plānotāju, kuras darbība ir atkarīga no daudziem ārējiem faktoriem, piemēram, CPU kodolu skaita un citu darbojošos pavedienu klātbūtnes.

Lai nodrošinātu atkārtojamu plānotāja darbību, visi pavedieni ir serializēti, saistīti ar vienu CPU kodolu un secībā, kādā vadība tiek nodota pavedieniem. Katram pavedienam ir atļauts izpildīt noteiktu skaitu instrukciju, pēc kurām izpilde tiek apturēta un pārsūtīta uz citu pavedienu (ierobežošanai tiek izmantots CPU PMU (Performance Monitoring Unit), kas aptur izpildi pēc noteikta skaita nosacīto zaru).

Lai diagnosticētu problēmas ar vītnēm sacensību stāvokļa dēļ, Vientuļnieks ir režīms, lai noteiktu darbības, kas nebija kārtībā un izraisīja blokādi. Lai identificētu šādas problēmas, tiek salīdzināti stāvokļi, kuros reģistrēta pareiza darbība un nenormāla izpildes pārtraukšana.

Visbeidzot, ja jūs interesē iespēja uzzināt vairāk par to, jums tas jāzina projekta kods tas ir rakstīts Rust un tiek izplatīts saskaņā ar BSD licenci.

Jūs varat pārbaudīt sīkāku informāciju šo saiti.


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: AB Internet Networks 2008 SL
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.