Hermit, kontrollü test ve hata tespiti için bir araç

keşiş

Tekrarlanabilir bir kapsayıcı olarak Hermit, sistem yığını bir soyutlama olarak tekrarlanabilirlik sağlasaydı nasıl olacağı hakkında bir fikir verir.

Facebook açıklandı yakın zamanda bir yayın aracılığıyla, lansmanı keşişoluşturan bir deterministik program yürütme ortamı, bu da aynı sonucu elde etmeyi ve aynı giriş verilerini kullanarak farklı başlatmalarda yürütme sürecini tekrarlamayı mümkün kılar.

Normal yürütme sırasında, geçerli zaman, iş parçacığı programlama işlevleri, sanal bellek adresleri, sözde rasgele sayı üretecinden gelen veriler ve çeşitli benzersiz tanımlayıcılar gibi çeşitli dış etkenler çıktıyı etkiler.

Hermit, programın bir kapta çalıştırılmasına izin verir sonraki çalıştırmalarda bu faktörlerin sabit kaldığı yer. Geçici ortamın yapılandırmasını tam olarak yeniden üreten tekrarlanabilir yürütme, hata teşhisi, hata ayıklama için kullanılabilir yinelemelerle çok adımlı, regresyon testi, stres testi, çok iş parçacıklı sorun giderme ve tekrarlanabilir derleme sistemleri için sabit bir ortam oluşturma.

Hermit, keyfi programların deterministik olarak yürütülmesini zorlar ve yeniden üretilebilir bir sarmalayıcı görevi görür. Yani, programı zamanlama, iş parçacığı serpiştirme, rasgele sayı üretimi vb. gibi determinizm olmayan kaynaklardan hermetik olarak yalıtır. Garantili determinizm güçlü bir araçtır ve eşzamanlılık stres testi, kayıt/yeniden oynatma, yeniden üretilebilir yapılar ve eşzamanlılık hatalarının otomatik teşhisi ve daha fazlasını içeren bir dizi uygulamanın temelini oluşturur.

Hermit, konuk programı, dosya sistemi değişiklikleri veya harici ağlardan gelen yanıtlar gibi belirlenimcilik dışı kaynaklardan ayıramaz. Bunun yerine, tam determinizm sağlamak için kullanıcının sabit bir dosya sistemi temel görüntüsü (örneğin, Docker ile) sağlaması ve harici ağları devre dışı bırakması gerekir.

Münzevi Hakkında

keşiş gücün yeniden üretilebilir bir ortam yaratmasına izin verir bazıları sabit çıktı üreten kendi işleyicileri ile değiştirilen ve bazıları çekirdeğe yeniden yönlendirilen ve ardından kalıcı olmayan veriler çıktıdan kaldırılan sistem çağrılarını yakalayarak.

Aramaları kesmek için Sisteme, çerçeve kullanılır hülya, kodu Facebook tarafından da yayınlanan. Dosya sistemi değişikliklerinin ve ağ isteklerinin yürütme ilerlemesini etkilemesini önlemek için, yürütme hareketsiz bir görüntü kullanılarak gerçekleştirilir dosya sisteminin ve harici ağlara erişimin devre dışı bırakılmasıyla. Hermit, sözde rasgele sayı üretecine erişerek, her yürütüldüğünde tekrarlanan önceden tanımlanmış bir dizi üretir.

Determinizmsizliğin en karmaşık kaynağı iş parçacığı zamanlayıcısındadır. Çekirdeğin iş parçacıklarını programlama şekli, fiziksel CPU'ların sayısı veya sistemde çalışan ve CPU zamanı gerektiren diğer iş parçacıkları dahil olmak üzere birçok dış faktöre bağlıdır.

Performans üzerindeki kalıcı olmayan daha karmaşık etkilerden, iş parçacığı planlayıcısını vurgularDavranışı, CPU çekirdeği sayısı ve çalışan diğer iş parçacıklarının varlığı gibi birçok dış faktöre bağlıdır.

Tekrarlanabilir zamanlayıcı davranışı sağlamak için, tüm iş parçacıkları serileştirilir, tek bir CPU çekirdeğine bağlanır ve kontrolün iş parçacıklarına geçirilme sırasına göre. Her iş parçacığının sabit sayıda talimatı yürütmesine izin verilir, ardından yürütme durdurulur ve başka bir iş parçacığına aktarılır (sınırlandırma için, belirli sayıda koşullu daldan sonra yürütmeyi durduran CPU PMU (Performans İzleme Birimi) kullanılır).

teşhis etmek yarış durumu nedeniyle iplik sorunları, Hermit sıra dışı işlemleri algılamak için bir moda sahiptir ve ablukaya neden oldu. Bu tür sorunları tespit edebilmek için doğru işlemin ve yürütmenin anormal sonlandırılmasının tescil edildiği ülkeler arasında bir karşılaştırma yapılır.

Son olarak, bu konuda daha fazla şey öğrenmekle ilgileniyorsanız, şunu bilmelisiniz: proje kodu Rust ile yazılmıştır ve BSD lisansı altında dağıtılmaktadır.

Ayrıntıları şuradan kontrol edebilirsiniz: aşağıdaki bağlantı.


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: AB Internet Networks 2008 SL
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.