Hermit, một công cụ để kiểm tra có kiểm soát và phát hiện lỗi

che giấu mặt

Hermit, với tư cách là một thùng chứa có thể tái tạo, đưa ra ý tưởng về việc nó sẽ như thế nào nếu ngăn xếp hệ thống cung cấp khả năng lặp lại dưới dạng trừu tượng

Facebook tiết lộ gần đây thông qua một ấn phẩm, sự ra mắt của Che giấu mặt, tạo thành một môi trường để thực hiện chương trình xác định, giúp có thể đạt được cùng một kết quả và lặp lại quá trình thực hiện trên các lần khởi chạy khác nhau bằng cách sử dụng cùng một dữ liệu đầu vào.

Trong quá trình thực thi bình thường, các yếu tố bên ngoài khác nhau ảnh hưởng đến đầu ra, chẳng hạn như thời gian hiện tại, chức năng lập lịch luồng, địa chỉ bộ nhớ ảo, dữ liệu từ trình tạo số giả ngẫu nhiên và các mã định danh duy nhất khác nhau.

Hermit cho phép chạy chương trình trong một container trong đó các yếu tố này không đổi trong các lần chạy tiếp theo. Thực thi có thể lặp lại, tái tạo đầy đủ cấu hình của môi trường không ổn định, có thể được sử dụng để chẩn đoán lỗi, gỡ lỗi nhiều bước với các lần lặp lại, tạo môi trường cố định để kiểm tra hồi quy, kiểm tra căng thẳng, khắc phục sự cố đa luồng và các hệ thống xây dựng có thể lặp lại.

Hermit buộc thực thi một cách xác định các chương trình tùy ý và hoạt động như một trình bao bọc có thể tái tạo. Nghĩa là, nó cô lập chương trình khỏi các nguồn không xác định như thời gian, xen kẽ luồng, tạo số ngẫu nhiên, v.v. Chủ nghĩa xác định được đảm bảo là một công cụ mạnh mẽ và đóng vai trò là nền tảng cho một số ứng dụng, bao gồm kiểm tra mức độ căng thẳng đồng thời, ghi/phát lại, bản dựng có thể tái sản xuất và tự động chẩn đoán lỗi đồng thời, v.v.

Hermit không thể tách chương trình khách khỏi các nguồn không xác định, chẳng hạn như thay đổi hệ thống tệp hoặc phản hồi từ các mạng bên ngoài. Thay vào đó, để cung cấp tính xác định đầy đủ, người dùng phải cung cấp hình ảnh cơ sở hệ thống tệp cố định (ví dụ: với Docker) và tắt các mạng bên ngoài.

về ẩn sĩ

Che giấu mặt cho phép sức mạnh tạo ra một môi trường có thể tái sản xuất bằng cách chặn các cuộc gọi hệ thống, một số trong số đó được thay thế bằng trình xử lý của riêng chúng để tạo ra đầu ra không đổi và một số trong số đó được chuyển hướng đến nhân, sau đó dữ liệu không liên tục sẽ bị xóa khỏi đầu ra.

Để chặn cuộc gọi Đến hệ thống, khuôn khổ được sử dụng sự mơ tưởng, có mã cũng được Facebook công bố. Để ngăn các thay đổi hệ thống tệp và yêu cầu mạng ảnh hưởng đến tiến độ thực thi, thực hiện được thực hiện bằng cách sử dụng một hình ảnh tĩnh của hệ thống tệp và với quyền truy cập vào các mạng bên ngoài bị vô hiệu hóa. Bằng cách truy cập trình tạo số giả ngẫu nhiên, Hermit tạo ra một chuỗi xác định trước được lặp lại mỗi khi nó được thực thi.

Nguồn không xác định phức tạp nhất là trong bộ lập lịch luồng. Cách nhân lên lịch các luồng phụ thuộc vào nhiều yếu tố bên ngoài, bao gồm số lượng CPU vật lý hoặc các luồng khác đang chạy trên hệ thống yêu cầu thời gian của CPU.

Trong số những ảnh hưởng không thường xuyên phức tạp hơn đối với hiệu suất, nổi bật chủ đề lịch trình, có hành vi phụ thuộc vào nhiều yếu tố bên ngoài, chẳng hạn như số lượng lõi CPU và sự hiện diện của các luồng đang chạy khác.

Để đảm bảo hành vi lập lịch lặp lại, tất cả các luồng được sắp xếp theo thứ tự, được liên kết với một lõi CPU và theo thứ tự kiểm soát được chuyển đến các chủ đề. Mỗi luồng được phép thực hiện một số lệnh cố định, sau đó quá trình thực thi bị dừng và chuyển sang luồng khác (để hạn chế, PMU CPU (Đơn vị giám sát hiệu suất) được sử dụng, dừng thực thi sau một số nhánh có điều kiện đã chỉ định).

để chẩn đoán vấn đề với chủ đề do điều kiện cuộc đua, Hermit có một chế độ để phát hiện các hoạt động không theo thứ tự và gây ra một phong tỏa. Để xác định những vấn đề như vậy, một so sánh được thực hiện giữa các trạng thái trong đó hoạt động chính xác và chấm dứt thực thi bất thường đã được đăng ký.

Cuối cùng, nếu bạn quan tâm đến việc có thể tìm hiểu thêm về nó, bạn nên biết rằng mã dự án nó được viết bằng Rust và được phân phối theo giấy phép BSD.

Bạn có thể kiểm tra các chi tiết trong liên kết sau.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: AB Internet Networks 2008 SL
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.