Mengapa mengunggah ke S3 begitu lambat?

12

Saya menggunakan s3cmduntuk mengunggah ke S3:

# s3cmd put 1gb.bin s3://my-bucket/1gb.bin
1gb.bin -> s3://my-bucket/1gb.bin  [1 of 1]
  366706688 of 1073741824    34% in  371s   963.22 kB/s

Saya mengunggah dari Linode, yang memiliki batas bandwidth keluar 50 Mb / s sesuai dengan dukungan (sekitar 6 MB / s).

Mengapa saya mendapatkan kecepatan unggah yang lambat ke S3, dan bagaimana saya bisa meningkatkannya?


Memperbarui:

Mengunggah file yang sama melalui SCP ke instance m1.medium EC2 (SCP dari Linode saya ke drive EBS instance) memberikan sekitar 44 Mb / dtk menurut iftop(kompresi apa pun yang dilakukan oleh sandi bukan merupakan faktor).


Traceroute: Ini traceroute ke server tempat unggahnya (menurut tcpdump).

# traceroute s3-1-w.amazonaws.com.
traceroute ke s3-1-w.amazonaws.com. (72.21.194.32), maksimal 30 hop, paket 60 byte
 1 207.99.1.13 (207.99.1.13) 0.635 ms 0.743 ms 0.723 ms
 2 207.99.53.41 (207.99.53.41) 0.683 ms 0.865 ms 0.915 ms
 3 vlan801.tbr1.mmu.nac.net (209.123.10.9) 0.397 ms 0,541 ms 0,527 ms
 4 0.e1-1.tbr1.tl9.nac.net (209.123.10.102) 1.400 ms 1.481 ms 1.508 ms
 5 0.gi-0-0-0.pr1.tl9.nac.net (209.123.11.62) 1.602 ms 1.677 ms 1.699 ms
 6 equinix02-iad2.amazon.com (206.223.115.35) 9.393 ms 8.925 ms 8.900 ms
 7 72.21.220.41 (72.21.220.41) 32.610 ms 9,812 ms 9,789 ms
 8 72.21.222.141 (72.21.222.141) 9.519 ms 9.439 ms 9.443 ms
 9 72.21.218.3 (72.21.218.3) 10.245 ms 10.202 ms 10.154 ms
10 * * *
11 * * *
12 * * *
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 * * *
21 * * *
22 * * *
23 * * *
24 * * *
25 * * *
26 * * *
27 * * *
28 * * *
29 * * *
30 * * *

Latensi terlihat masuk akal, setidaknya hingga server berhenti merespons permintaan ping.

Tom Marthenal
sumber
Mulai pemecahan masalah. Seperti apa penggunaan CPU Anda saat Anda mengunggah? Seperti apa traceroutebentuknya? Apakah antrian kirim di sisi Anda dari koneksi TCP hampir penuh atau hampir kosong? Dengan beberapa tes yang sangat sederhana, Anda dapat dengan cepat mempersempit masalahnya.
David Schwartz

Jawaban:

9

Hanya karena Anda bisa mencapai 50mbps bukan berarti Anda akan selalu mendapatkan 50mbps; Jalur jaringan ke S3 serta latensi juga penting.

Jika Anda dapat menggunakan unggahan multi-bagian, Anda dapat memecah file menjadi beberapa bagian dan mengunggahnya menggunakan beberapa utas, mungkin meningkatkan kecepatan unggahan.

gekkz
sumber
1
Mengunggah file yang sama ke instance m1.medium EC2 melalui SCP dari Linode saya berjalan sekitar 44 Mb / s (menurut iftop, jadi kompresi tidak masalah), yang jauh lebih dekat dengan batas bandwidth keluar 50 Mb / s. Unggahan S3 kira-kira seperlima kecepatan. s3cmdDukungan terbaru mengunggah multi-bagian, tetapi tidak mengunggahnya secara bersamaan, tetapi sebaliknya secara berurutan. Apakah ada utilitas yang lebih baik untuk mengunggah ke S3?
Tom Marthenal
Saya telah menambahkan statistik kecepatan dari SCP (contoh Linode saya -> EC2) ke pertanyaan saya.
Tom Marthenal
Sudahkah Anda mencoba menggunakan alat lain yang mirip dengan s3cmd untuk melakukan tes? Ini untuk menentukan bahwa sebenarnya bukan s3cmd yang lambat. Juga, jika s3cmd entah bagaimana mengunggah melalui HTTPS, Anda mungkin ingin mencoba untuk mengubahnya ke HTTP. Gagasan lain adalah S3 itu sendiri hanya lebih lambat untuk diunggah, karena Anda tampaknya tidak memiliki masalah dengan EC2.
gekkz
4
Coba s3multiput.
EEAA
11

Untuk berjaga-jaga jika ada yang menemukan ini ....

Saya punya masalah di mana sangat lambat untuk mengunggah dari instance EC2 ke bucket s3, ternyata sangat sederhana, wilayah bucket! Saya menggunakan contoh EC2 di california utara, ketika ember dibuat sebagai standar kami sangat lambat untuk mentransfer, dengan ember diatur ke california utara itu tumpukan lebih cepat.

rab
sumber
1

Saya telah melihat banyak utas di forum tentang unggahan lambat ke S3 menggunakan berbagai klien, seperti alat baris perintah gratis (ditulis dengan Python, btw) dan yang komersial.

Meskipun saya tidak memiliki bukti kuat untuk Anda, beralih klien S3 (mis. Cloud Berry Explorer) dapat menyelesaikan masalah Anda. Cobalah! :)

Valentin
sumber
3
Di server tanpa kepala? Jangan berpikir begitu.
EEAA
Biarkan dia mencoba klien lain sebelum menilai. Ada s3cp, misalnya.
Valentin
+1. Di EC2, hanya beralih dari FileZilla ke CuteFTP membuat peningkatan perf x30.
Calvin1602