Чому завантаження на S3 так повільне?


12

Я використовую s3cmdдля завантаження в 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

Я завантажую з Linode, який має вихідну пропускну здатність 50 Мбіт / с відповідно до підтримки (приблизно 6 Мб / с).

Чому я отримую такі низькі швидкості завантаження на S3, і як їх покращити?


Оновлення:

Завантаження того ж файлу через SCP на екземпляр m1.medium EC2 (SCP з мого Linode до приводу EBS примірника) дає приблизно 44 Мб / с відповідно до iftop(будь-яке стиснення, зроблене шифром, не є фактором).


Traceroute: Ось трассіровка до сервера, на який він завантажується (відповідно tcpdump).

# traceroute s3-1-w.amazonaws.com.
traceroute to s3-1-w.amazonaws.com. (72.21.194.32), макс 30 хмелів, 60 байт пакетів
 1 207,99,1,13 (207,99,1,13) 0,635 мс 0,743 мс 0,723 мс
 2 207,99.53,41 (207,99,53,41) 0,683 мс 0,865 мс 0,915 мс
 3 vlan801.tbr1.mmu.nac.net (209.123.10.9) 0,397 мс 0,541 мс 0,527 мс
 4 0.e1-1.tbr1.tl9.nac.net (209.123.10.102) 1.400 мс 1.481 мс 1.508 мс
 5 0.gi-0-0-0.pr1.tl9.nac.net (209.123.11.62) 1.602 мс 1.677 мс 1.699 мс
 6 equinix02-iad2.amazon.com (206.223.115.35) 9.393 мс 8.925 мс 8.900 мс
 7 72,21,220,41 (72,21,220,41) 32,610 мс 9,812 мс 9,789 мс
 8 72.21.222.141 (72.21.222.141) 9.519 мс 9.439 мс 9.443 мс
 9 72,21,218,3 (72,21,218,3) 10,245 мс 10,202 мс 10,154 мс
10 * * *
11 * * *
12 * * *
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 * * *
21 * * *
22 * * *
23 * * *
24 * * *
25 * * *
26 * * *
27 * * *
28 * * *
29 * * *
30 * * *

Затримка виглядає розумною, принаймні, поки сервер не перестає відповідати на запити ping.


Почніть усунення несправностей. Як виглядає ваше використання процесора під час завантаження? Як tracerouteвиглядає? Чи черга надсилань з вашого боку з'єднання TCP майже повна або майже порожня? За допомогою декількох дуже простих тестів ви можете швидко звузити проблему.
Девід Шварц

Відповіді:


9

Тільки тому, що ви можете піднятися до 50 Мбіт / с, не означає, що ви завжди отримаєте 50 Мбіт / с; Важливий також мережевий шлях до S3, а також затримка.

Якщо ви зможете скористатись багаточастинним завантаженням, ви зможете розбити файл на кілька фрагментів і завантажити його за допомогою декількох потоків, можливо збільшуючи швидкість завантаження.


1
Завантаження одного і того ж файлу в екземпляр EC2 m1.medium через SCP з мого Linode працює зі швидкістю близько 44 Мб / с (відповідно iftop, стиснення не має значення), що набагато ближче до обмеження пропускної здатності вихідної смуги частотою 50 Мб / с. Завантаження S3 - це приблизно п'ята частина якнайшвидшого. Останні s3cmdзавантажують частину підтримки, але не завантажують їх одночасно, а натомість послідовно. Чи є краща утиліта для завантаження на S3?
Том Мартенал

До свого запиту я додав статистику швидкості від SCP (мій екземпляр Linode -> EC2).
Том Мартенал

Ви намагалися використовувати інші інструменти, подібні до s3cmd, для проведення тестів? Це означає, що це насправді не s3cmd, що повільно. Крім того, у випадку, якщо s3cmd якимось чином завантажується через HTTPS, ви можете спробувати переключити його на HTTP. Інша ідея полягає в тому, що сам S3 просто завантажується повільніше, оскільки, схоже, у вас немає проблем з EC2.
gekkz

4
Спробуйте s3multiput.
EEAA

11

На всякий випадок, коли хтось наткнеться на це….

У мене виникла проблема, коли завантажувати з екземпляру ec2 у відро s3 було дуже повільно, виявилося, це дуже просто, область відра! Я використовував екземпляри ec2 у Північній Каліфорнії, коли відро було створене, як ми стандартно, переносити його було дуже повільно, а відро, яке було встановлено на північ Каліфорнії, воно накопичувалося швидше.


1

Я бачив багато тем на форумі про повільне завантаження в S3 за допомогою різних клієнтів, таких як безкоштовні інструменти командного рядка (написані на Python, btw) та комерційні.

Хоча я не маю для вас вагомих доказів, перемикання клієнта S3 (наприклад, Cloud Berry Explorer) може вирішити вашу проблему. Спробуй це! :)


3
На безголовому сервері? Не думай так.
EEAA

Дозвольте йому / їй спробувати іншого клієнта, перш ніж судити. Наприклад, є s3cp.
Валентин

+1. На EC2, просто переключившись з FileZilla на CuteFTP, вдосконалено x30 perf.
Calvin1602
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.