Giả sử tôi có một tấn (một luồng liên tục) các yêu cầu để xử lý và mỗi yêu cầu có nhiều giai đoạn. Ví dụ: "kết nối với nguồn dữ liệu", "đọc dữ liệu từ nguồn dữ liệu", "xác thực dữ liệu", "xử lý dữ liệu", "kết nối với dữ liệu chìm", "ghi kết quả vào dữ liệu chìm".Làm cách nào để hình dung hành vi của nhiều quy trình nhiều giai đoạn đồng thời?
Phương pháp trực quan hóa hoặc thậm chí các công cụ nào cũng phù hợp để trực quan hóa hành vi của một hệ thống như vậy?
Tôi muốn có thể xem giai đoạn nào mất nhiều thời gian và cách các giai đoạn của các yêu cầu khác nhau được liên kết với nhau (ví dụ: để thấy rằng nguồn dữ liệu phản hồi lâu hơn khi được truy cập bởi quá nhiều yêu cầu cùng một lúc).
Nếu chỉ có vài chục yêu cầu, tôi sẽ ổn với vài chục mốc thời gian màu riêng lẻ, nhưng đối với vài nghìn không phù hợp. Tôi nghĩ rằng tôi có thể nhận được đi với thời gian màu N, nơi N là "yếu tố đồng thời", nhưng 1) có lẽ có cái gì tốt hơn, 2) có lẽ có tồn tại các công cụ này?
P.S. Shameless plug: Một khi tôi tìm ra cách trực quan nhất, tôi sẽ thêm nó vào công cụ tiện lợi của tôi được gọi là timeplot;)
P.P.S. Một plug shameless khác: Tôi quyết định viết một công cụ riêng biệt: splot. Đây là những gì nó có thể làm, dựa trên một khúc gỗ trivially đơn giản và một awk một liner:
Nó cho thấy 160 lõi của một cụm thực hiện nhiệm vụ làm thức ăn cho chúng bằng cách RabbitMQ. Màu xanh là "lấy dữ liệu", màu cam là "tính toán", màu trắng là "không làm gì cả". Một số vấn đề là ngay lập tức rõ ràng từ sơ đồ này, mà sẽ rất khó để tìm thấy bằng cách chỉ cần nhìn vào các bản ghi.
Điều này thật tuyệt vời! Tôi không rõ ràng về mức độ phụ thuộc lẫn nhau, nhưng trong trường hợp các nhiệm vụ ngoài cùng bên phải phụ thuộc vào các nhiệm vụ bên trái, bạn có tương đương với biểu đồ phân tích đường dẫn quan trọng. Tôi sẽ được tinkering với phần mềm của bạn chắc chắn :) – Phillip