Facebook, təkrarlanan proqramların icrası üçün alətlər dəsti olan Hermit nəşr edir

Facebook (Rusiya Federasiyasında qadağan olunub) deterministik proqramın icrası üçün mühiti formalaşdıran, eyni nəticəni əldə etməyə və müxtəlif işəsalmalarda eyni daxiletmə məlumatlarından istifadə etməklə icranın gedişatını təkrar etməyə imkan verən Hermit alət dəstinin kodunu dərc edib. Layihə kodu Rust-da yazılmışdır və BSD lisenziyası altında paylanmışdır.

Normal icra zamanı nəticəyə müxtəlif kənar amillər təsir göstərir, məsələn, cari vaxt, mövzu planlaşdırma xüsusiyyətləri, virtual yaddaş ünvanları, psevdo-təsadüfi nömrələr generatorundan alınan məlumatlar və müxtəlif unikal identifikatorlar. Hermit proqramı bu amillərin sonrakı qaçışlarda sabit qaldığı konteynerdə işlətməyə imkan verir. Dəyişkən mühit parametrlərini tam şəkildə təkrarlayan təkrarlanan icra, səhvlərin diaqnostikası, təkrar əməliyyatlarla çox mərhələli sazlama, reqressiya testləri üçün sabit mühit yaratmaq, stress testi, çox iş parçacığı problemlərinin aradan qaldırılması və təkrarlanan qurma sistemləri üçün istifadə edilə bilər.

Facebook, təkrarlanan proqramların icrası üçün alətlər dəsti olan Hermit nəşr edir

Təkrarlana bilən mühit sistem çağırışlarının qarşısını almaqla yaradılır, onların bəziləri daimi nəticə yaradan öz işləyiciləri ilə əvəz olunur, bəziləri isə nüvəyə yönləndirilir, bundan sonra nəticə davamlı olmayan məlumatlardan təmizlənir. Sistem zənglərinin qarşısını almaq üçün kodunu Facebook tərəfindən də dərc olunan reverie çərçivəsi istifadə olunur. Fayl sistemindəki dəyişikliklərin və şəbəkə sorğularının icra prosesinin gedişatına təsir etməməsi üçün icra sabit FS təsvirindən istifadə etməklə və xarici şəbəkələrə çıxış deaktiv edilməklə həyata keçirilir. Pseudo-təsadüfi nömrə generatoruna daxil olduqda, Hermit hər dəfə işə salındıqda təkrarlanan əvvəlcədən təyin edilmiş ardıcıllıq yaradır.

İcraya ən mürəkkəb qeyri-daimi təsirlər arasında, davranışı CPU nüvələrinin sayı və işləyən digər iplərin olması kimi bir çox xarici amillərdən asılı olan mövzu planlaşdırıcısıdır. Planlayıcının təkrarlanan davranışını təmin etmək üçün bütün mövzular seriallaşdırılır, yalnız bir CPU nüvəsinə bağlanır və idarəetmənin iplərə ötürülməsi ardıcıllığı ilə. Hər bir ipə müəyyən sayda təlimatları yerinə yetirməyə icazə verilir, bundan sonra icra dayandırılır və başqa bir ipə köçürülür (məhdudlaşdırmaq üçün müəyyən sayda şərti filialdan sonra icranı dayandıran CPU PMU (Performans Monitorinq Birimi) istifadə olunur).

Yarış vəziyyətinə görə iplərlə bağlı problemləri diaqnoz etmək üçün Hermit sıradan çıxmış və qəzaya səbəb olan əməliyyatları aşkar etmək rejiminə malikdir. Bu cür problemləri müəyyən etmək üçün düzgün işləmə və icranın anormal tamamlanması qeydə alınan ştatların müqayisəsi aparılır.

Mənbə: opennet.ru

Добавить комментарий