Tôi có trường hợp sử dụng trong đó nhiều tập lệnh python sẽ chạy song song trên ec2.
Chúng đọc hàng đợi SQS và thực hiện các thao tác như tải xuống từ S3, phân tích tệp, phân tách, xử lý và cập nhật cơ sở dữ liệu.
Các tập lệnh chạy cứ sau 5 phút. Nếu SQS trống, tập lệnh không làm gì cả và thoát. Nếu SQS có thông báo, nó sẽ được xử lý bởi tập lệnh có thể chạy trong hơn một giờ. Vì vậy, thời lượng chạy khác nhau.
Trong tự động chia tỷ lệ, tôi thấy có tùy chọn để chia tỷ lệ dựa trên mức sử dụng cpu trung bình nhưng tính ngẫu nhiên mà cpu được sử dụng khiến nó không phải là một chỉ báo tốt khi chia tỷ lệ (ví dụ: tập lệnh python sẽ chiếm nhiều cpu hơn trong khi thực hiện các hoạt động của đĩa io. Nhưng những lần khác nó chiếm bộ nhớ nhưng không có cpu)
Có cách nào để mở rộng quy mô dựa trên số lượng quy trình python đang chạy trên phiên bản ec2 không?
Vì vậy, khi số lượng lời gọi song song đạt đến 10, các phiên bản sẽ tăng lên?
Hơn nữa, có cách nào để chỉ định quy mô giảm nên KHÔNG PHẢI xảy ra đối với một phiên bản ec2 nếu nó có ít nhất một quy trình python chạy bên trong nó (ngay cả khi một quy trình đó đang chiếm <5% cpu), bởi vì việc giảm quy mô sẽ chấm dứt một quy trình đang diễn ra và sẽ tốt hơn nếu việc giảm quy mô có thể xảy ra sau khi quá trình python hoàn thành
Không có bộ cân bằng tải trong hình.