- GNU Parallel rất hữu ích để chạy kiểm thử E2E song song
- Tác giả muốn thu thập thống kê về tỷ lệ pass/fail của một bộ kiểm thử chạy trong thời gian dài đối với một dịch vụ đang hoạt động qua HTTP
- Ban đầu, tác giả dùng các vòng lặp lồng nhau trong bash để chạy kiểm thử, nhưng do thời gian chạy của từng bài kiểm thử dài nên cách này khá chậm
- Sau đó, tác giả dùng GNU Parallel để chạy kiểm thử song song, giúp cải thiện đáng kể cả hiệu năng lẫn tính năng với ít mã hơn
- Trong GNU Parallel, bạn chỉ định lệnh sẽ được chạy song song, và các placeholder (
{1}, {2} v.v.) sẽ được thay bằng các giá trị đầu vào
- Đầu vào cho lệnh được chỉ định sau toán tử
::: và sẽ được truyền vào lệnh theo mọi tổ hợp có thể
- GNU Parallel cung cấp các tùy chọn để kiểm soát mức độ đồng thời và tránh tranh chấp tài nguyên, chẳng hạn như giới hạn số lượng tác vụ đồng thời hoặc trì hoãn thời điểm bắt đầu của từng tác vụ
- Công cụ này cũng có khả năng xuất tệp CSV chứa kết quả hoàn tất tác vụ: thời lượng, mã thoát, và cả stdout/stderr đã được ghi lại
- Tác giả khuyến nghị cuốn sách của Ole Tange, tác giả GNU Parallel, để tìm hiểu sâu hơn các tính năng của công cụ như phân phối tác vụ sang các máy khác qua SSH, theo dõi thời gian hoàn tất tác vụ, thử lại các tác vụ dễ thất bại, tiếp tục các tác vụ nếu quá trình chạy song song bị gián đoạn, hoặc giới hạn mức độ đồng thời của tác vụ dựa trên mức sử dụng CPU
1 bình luận
Ý kiến trên Hacker News
ForEach-Objectcủa PowerShell có tham số-parallel, nhấn mạnh sức hấp dẫn của việc song song hóa bằng các công cụ dòng lệnh