Dlaczego przesyłanie do S3 jest tak wolne?

12

Używam s3cmddo przesłania do 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

Przesyłam z Linode, który ma limit przepustowości wychodzącej 50 Mb / s zgodnie z obsługą (około 6 MB / s).

Dlaczego otrzymuję tak wolne prędkości przesyłania do S3 i jak mogę je poprawić?


Aktualizacja:

Przesłanie tego samego pliku przez SCP do instancji m1.medium EC2 (SCP z mojej Linode na dysk EBS instancji) daje około 44 Mb / s zgodnie z iftop(jakakolwiek kompresja wykonywana przez szyfr nie jest czynnikiem).


Traceroute: Oto traceroute do serwera, na który jest przesyłany (zgodnie z tcpdump).

# traceroute s3-1-w.amazonaws.com.
traceroute do s3-1-w.amazonaws.com. (72.21.194.32), maksymalnie 30 przeskoków, 60 bajtów pakietów
 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,43 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 * * *

Opóźnienie wygląda rozsądnie, przynajmniej do momentu, gdy serwer przestanie odpowiadać na żądania ping.

Tom Marthenal
źródło
Rozpocznij rozwiązywanie problemów. Jak wygląda użycie procesora podczas przesyłania? Jak to traceroutewygląda? Czy kolejka wysyłania po twojej stronie połączenia TCP jest prawie pełna lub prawie pusta? Za pomocą kilku bardzo prostych testów możesz szybko zawęzić problem.
David Schwartz,

Odpowiedzi:

9

To, że możesz przejść do 50 Mb / s, nie oznacza, że ​​zawsze otrzymasz 50 Mb / s; Ważna jest również ścieżka sieciowa do S3, a także opóźnienie.

Jeśli możesz używać przesyłania wieloczęściowego, będziesz w stanie rozbić plik na wiele części i przesłać go przy użyciu wielu wątków, co może zwiększyć szybkość przesyłania.

gekkz
źródło
1
Przesyłanie tego samego pliku do instancji m1.medium EC2 przez SCP z mojego Linode działa z prędkością około 44 Mb / s (zgodnie z tym iftop, więc kompresja nie ma znaczenia), co jest znacznie bliższe limitowi przepustowości wychodzącej 50 Mb / s. Przesyłanie S3 zajmuje około jednej piątej tak szybko. Najnowsze s3cmdobsługuje przesyłanie wieloczęściowe, ale nie przesyła ich jednocześnie, ale zamiast tego kolejno. Czy istnieje lepsze narzędzie do przesyłania do S3?
Tom Marthenal
Dodałem statystyki prędkości z SCP (moja instancja Linode -> EC2) do mojego pytania.
Tom Marthenal,
Czy próbowałeś użyć innych narzędzi podobnych do s3cmd do wykonania testów? Ma to na celu określenie, że tak naprawdę nie jest to s3cmd, który jest wolny. Ponadto w przypadku, gdy s3cmd w jakiś sposób przesyła przez HTTPS, możesz spróbować przełączyć go na HTTP. Innym pomysłem jest to, że samo S3 dzieje się wolniej, ponieważ wydaje się, że nie masz problemów z EC2.
gekkz
4
Wypróbuj s3multiput.
EEAA
11

Na wypadek, gdyby ktoś natknął się na to ....

Miałem problem polegający na tym, że przesyłanie z instancji ec2 do segmentu s3 było bardzo powolne. Okazało się, że jest to bardzo prosty region regionu! Używałem instancji ec2 w północnej Kalifornii, kiedy wiadro zostało utworzone jako nasz standard, przesyłanie było bardzo powolne, a zestaw wiader do północnej Kalifornii był o wiele szybszy.

rabs
źródło
1

Widziałem wiele wątków na forum o powolnym przesyłaniu do S3 przy użyciu różnych klientów, takich jak darmowe narzędzia wiersza poleceń (napisane w Python, btw) i komercyjne.

Chociaż nie mam na to żadnych twardych dowodów, zmiana klienta S3 (np. Cloud Berry Explorer) może rozwiązać Twój problem. Spróbuj! :)

Valentin
źródło
3
Na bezgłowym serwerze? Nie myśl tak
EEAA
Pozwól mu / jej spróbować innego klienta przed oceną. Na przykład jest s3cp.
Valentin,
+1. Na EC2 po prostu przejście z FileZilla na CuteFTP spowodowało poprawę wydajności x30.
Calvin1602