Có một số yếu tố chính xác định thông lượng từ EC2 đến S3:
- Kích thước tệp - các tệp nhỏ hơn yêu cầu số lượng yêu cầu lớn hơn và nhiều chi phí hơn và truyền chậm hơn. Độ lợi với kích thước tệp (khi xuất phát từ EC2) không đáng kể đối với các tệp lớn hơn 256kB. (Trong khi đó, chuyển từ một địa điểm từ xa, với độ trễ cao hơn, có xu hướng tiếp tục cho thấy những cải tiến đáng kể cho đến giữa 1MiB và 2MiB).
- Số lượng luồng song song - một luồng tải lên duy nhất thường có mức khá thấp trong suốt - thường dưới 5MiB / s. Thông lượng tăng theo số lượng luồng đồng thời và có xu hướng đạt đỉnh giữa 64 và 128 luồng. Cần lưu ý rằng các trường hợp lớn hơn có thể xử lý số lượng lớn hơn các luồng đồng thời.
- Kích thước sơ thẩm - Theo thông số kỹ thuật của phiên bản , các phiên bản lớn hơn có nhiều tài nguyên chuyên dụng hơn, bao gồm phân bổ băng thông mạng lớn hơn (và ít biến đổi hơn) và nói chung là I / O - bao gồm cả đọc từ đĩa ephemeral / EBS - được gắn mạng. số giá trị cho mỗi loại là:
- Rất cao: Lý thuyết: 10Gbps = 1250MB / s; Thực tế: 8,8Gbps = 1100MB / s
- Cao: Lý thuyết: 1Gbps = 125MB / s; Thực tế: 750Mbps = 95MB / s
- Trung bình: Lý thuyết: 250Mbps; Thực tế: 80Mbps = 10MB / s
- Thấp: Lý thuyết: 100Mbps; Thực tế: 10-15Mbps = 1-2MB / s
Trong trường hợp chuyển một lượng lớn dữ liệu, có thể thực tế về mặt kinh tế khi sử dụng một thể hiện tính toán cụm, vì mức tăng hiệu quả trong thông lượng (> 10 lần) nhiều hơn chênh lệch về chi phí (2-3 lần).
Mặc dù các ý tưởng trên khá logic (mặc dù, nắp trên mỗi luồng có thể không), nhưng khá dễ dàng để tìm điểm chuẩn sao lưu chúng. Một chi tiết đặc biệt có thể được tìm thấy ở đây .
Việc sử dụng từ 64 đến 128 tải lên song song (đồng thời) các đối tượng 1MB sẽ bão hòa đường lên 1Gbps mà m1.xlarge có và thậm chí sẽ bão hòa đường lên 10Gbps của một đối tượng tính toán cụm (cc1.4xlarge).
Mặc dù khá dễ dàng để thay đổi kích thước cá thể, hai yếu tố còn lại có thể khó quản lý hơn.
- Kích thước tệp thường được cố định - chúng tôi không thể nối các tệp với nhau trên EC2 và tách chúng ra trên S3 (vì vậy, chúng tôi không thể làm gì nhiều với các tệp nhỏ). Tuy nhiên, các tệp lớn, chúng ta có thể tách ra ở phía EC2 và lắp lại ở phía S3 (sử dụng tải lên nhiều phần của S3). Thông thường, điều này là thuận lợi cho các tệp lớn hơn 100 MB.
- Chủ đề song song là một chút khó khăn hơn để phục vụ. Cách tiếp cận đơn giản nhất là viết một trình bao bọc cho một số tập lệnh tải lên hiện có sẽ chạy nhiều bản sao của nó cùng một lúc. Các cách tiếp cận tốt hơn sử dụng API trực tiếp để thực hiện một cái gì đó tương tự. Hãy nhớ rằng khóa là các yêu cầu song song, không khó để xác định một số tập lệnh tiềm năng, ví dụ:
- s3cmd-sửa đổi - một nhánh của phiên bản đầu tiên của s3cmd đã thêm chức năng này, nhưng đã không được cập nhật trong vài năm.
- s3 -allel-put - kịch bản python hợp lý gần đây hoạt động tốt