Facebook кайталануучу программаны аткаруу үчүн Hermit инструменттерин чыгарат

Facebook (Россия Федерациясында тыюу салынган) Hermit инструменталдык комплектинин кодун жарыялады, ал программаларды детерминисттик түрдө аткаруу үчүн чөйрөнү түзүп, бир эле натыйжага жетишүүгө жана бир эле киргизүү маалыматтарын колдонуу менен аткарууну кайталоого мүмкүндүк берет. Долбоордун коду Rust тилинде жазылган жана BSD лицензиясы боюнча таратылат.

Кадимки аткаруу учурунда натыйжага учурдагы убакыт, жипти пландаштыруу, виртуалдык эстутум даректери, псевдордук сан генераторунун маалыматтары жана ар кандай уникалдуу идентификаторлор сыяктуу ар кандай бөтөн факторлор таасир этет. Hermit программаны контейнерде иштетүүгө мүмкүндүк берет, анда бул факторлор кийинки иштөөдө туруктуу бойдон кала берет. Айлана-чөйрөнүн туруктуу эмес параметрлерин толугу менен кайра чыгарган кайталануучу аткаруу каталарды диагностикалоо, көп кадамдуу мүчүлүштүктөрдү кайталап иштетүү менен оңдоо, регрессиялык тесттер үчүн туруктуу чөйрөнү түзүү, стресс тестирлөө, көп агым менен көйгөйлөрдү аныктоо жана кайталануучу куруу системаларында колдонулушу мүмкүн. .

Facebook кайталануучу программаны аткаруу үчүн Hermit инструменттерин чыгарат

Кайталануучу чөйрө тутумдук чалууларды кармап калуу жолу менен түзүлөт, алардын айрымдары туруктуу натыйжа берген өздөрүнүн иштеткичтери менен алмаштырылат, ал эми кээ бирлери ядрого багытталат, андан кийин натыйжа туруктуу эмес маалыматтардан тазаланат. Системалык чалууларды кармоо үчүн ревери фреймворк колдонулат, анын коду Facebook тарабынан да жарыяланган. Файлдык тутумдагы жана тармактык суроо-талаптардагы өзгөрүүлөрдүн аткарылышынын жүрүшүнө таасирин тийгизбөө үчүн, аткаруу туруктуу FS сүрөтүн колдонуу менен жана тышкы тармактарга кирүү мүмкүнчүлүгүн өчүрүү менен аткарылат. Псевдо-кокус сандар генераторуна кирүү учурунда, Hermit ал ишке киргизилген сайын кайталануучу алдын ала аныкталган ырааттуулукту чыгарат.

Аткаруу прогрессине эң татаал өзгөрмө таасирлердин бири жип пландоочусу болуп саналат, анын жүрүм-туруму CPU өзөктөрүнүн саны жана башка аткаруучу жиптердин болушу сыяктуу көптөгөн тышкы факторлорго көз каранды. Пландоочтун кайталануучу жүрүм-турумун камсыз кылуу үчүн бардык жиптер бир гана CPU өзөгүнө байланыштуу сериялык түрдө аткарылат жана башкаруу жиптерге өткөрүлүп берилүүчү тартипти сактоо менен. Ар бир жипке белгиленген сандагы нускамаларды аткарууга уруксат берилет, андан кийин аткаруу токтойт жана башка жипке өткөрүлөт (шарттуу бутактардын белгиленген санынан кийин аткарууну токтоткон CPU PMU ( Performance Monitoring Unit ) чектөө үчүн).

Жарыш шарттарына байланыштуу жиптердеги көйгөйлөрдү диагностикалоо үчүн Hermitте аткаруу тартиби иштен чыгып, анормалдуу өчүрүүгө алып келген операцияларды аныктоо режими бар. Мындай көйгөйлөрдү аныктоо үчүн туура иштөө жана аткаруунун анормалдуу токтотулушу катталган мамлекеттерди салыштыруу жүргүзүлөт.

Source: opennet.ru

Комментарий кошуу