EC2'den S3'e verimi belirleyen birkaç anahtar faktör vardır:
- Dosya boyutu - daha küçük dosyalar daha fazla sayıda istek gerektirir ve daha fazla ek yük ve daha yavaş aktarım sağlar. Dosya boyutunda olan kazanç (EC2'den kaynaklanırken) 256kB'den büyük dosyalar için önemsizdir. (Oysa, uzaktaki bir yerden daha yüksek gecikme süresiyle geçiş yapmak, 1MiB ve 2MiB arasında olana kadar kayda değer iyileşmeler göstermeye devam etme eğilimindedir).
- Paralel iş parçacıklarının sayısı - tek bir yükleme iş parçacığı genellikle oldukça düşüktür - genellikle 5MiB / s'nin altında. Verim, eşzamanlı iş parçacıklarının sayısıyla artar ve 64 ile 128 iş parçacığı arasında doruğa çıkma eğilimindedir. Daha büyük örneklerin daha fazla sayıda eşzamanlı iş parçacığını kaldırabildiğine dikkat edilmelidir.
- Örnek boyutu - Örnek özelliklerine göre , daha büyük örnekler, ağa bağlı olan (geçici / EBS disklerinden okuma dahil olmak üzere) ağ bant genişliğinin (ve genel olarak G / Ç'nin daha büyük (ve daha az değişken) tahsisi dahil olmak üzere daha özel kaynaklara sahiptir. Her kategori için sayı değerleri:
- Çok Yüksek: Teorik: 10 Gbps = 1250 MB / s; Gerçekçi: 8.8 Gb / sn = 1100 MB / sn
- Yüksek: Teorik: 1 Gbps = 125MB / s; Gerçekçi: 750 Mbps = 95MB / sn
- Orta: Teorik: 250 Mbps; Gerçekçi: 80 Mbps = 10 MB / sn
- Düşük: Teorik: 100 Mbps; Gerçekçi: 10-15Mbps = 1-2MB / s
Büyük miktarda veri aktarımı durumunda, verimlilikte (> 10x) etkin kazanç maliyet farkından (2-3x) daha fazla olduğundan küme hesaplama örneği kullanmak ekonomik olarak pratik olabilir.
Yukarıdaki fikirler oldukça mantıklı olsa da (konu başına düşen başlık olmayabilir), ancak bunları destekleyen kriterleri bulmak oldukça kolaydır. Özellikle ayrıntılı bir tane burada bulunabilir .
64 ile 128 arasında paralel (eşzamanlı) yükleme, 1 MB'lık nesnelerin kullanılması, bir m1.xlarge öğesinin 1Gbps yukarı bağlantısını doyurmalı ve hatta bir küme hesaplama (cc1.4xlarge) örneğinin 10Gbps yukarı bağlantısını doyurmalıdır.
Örnek boyutunu değiştirmek oldukça kolay olmakla birlikte, diğer iki faktörün yönetilmesi zor olabilir.
- Dosya boyutu genellikle sabittir - EC2'de dosyaları birleştiremiyoruz ve S3'te ayırmalarını sağlayamıyoruz (küçük dosyalar hakkında yapabileceğimiz fazla bir şey yok). Ancak büyük dosyalar EC2 tarafında ayrılabilir ve S3 tarafında yeniden birleştirilebilir (S3'ün çok parçalı yüklemesini kullanarak). Tipik olarak, bu 100 MB'den büyük dosyalar için avantajlıdır.
- Paralel ipler yemek biraz zor. En basit yaklaşım, bir kerede birden fazla kopyasını çalıştıracak varolan bazı yükleme komut dosyası için bir sarmalayıcı yazmaya gelir. Daha iyi yaklaşımlar, benzer bir şeyi başarmak için doğrudan API'yi kullanır. Anahtarın paralel istekler olduğunu göz önünde bulundurarak, birkaç olası komut dosyasını bulmak zor değildir, örneğin: