¿Por qué la carga a S3 es tan lenta?

12

Estoy usando s3cmdpara subir a 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

Estoy cargando desde Linode, que tiene un límite de ancho de banda saliente de 50 Mb / s según el soporte (aproximadamente 6 MB / s).

¿Por qué obtengo velocidades de carga tan lentas en S3 y cómo puedo mejorarlas?


Actualizar:

Cargar el mismo archivo a través de SCP a una instancia m1.medium EC2 (SCP de mi Linode a la unidad EBS de la instancia) proporciona aproximadamente 44 Mb / s según iftop(cualquier compresión realizada por el cifrado no es un factor).


Traceroute: Aquí hay un traceroute al servidor al que está cargando (según tcpdump).

# traceroute s3-1-w.amazonaws.com.
traceroute a s3-1-w.amazonaws.com. (72.21.194.32), 30 saltos máximo, paquetes de 60 bytes
 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 * * *
dieciséis * * *
17 * * *
18 * * *
19 * * *
20 * * *
21 * * *
22 * * *
23 * * *
24 * * *
25 * * *
26 * * *
27 * * *
28 * * *
29 * * *
30 * * *

La latencia parece razonable, al menos hasta que el servidor dejó de responder a las solicitudes de ping.

Tom Marthenal
fuente
Comience a solucionar problemas. ¿Cómo se ve el uso de tu CPU mientras estás cargando? ¿Cómo se tracerouteve un ? ¿La cola de envío de su lado de la conexión TCP está casi llena o casi vacía? Con unas pocas pruebas muy simples, puede reducir rápidamente el problema.
David Schwartz

Respuestas:

9

El hecho de que pueda subir a 50 mbps no significa que siempre obtendrá 50 mbps; La ruta de red a S3, así como la latencia, también son importantes.

Si puede usar la carga de varias partes, podrá dividir un archivo en varias partes y cargarlo usando múltiples hilos, posiblemente aumentando la velocidad de carga.

gekkz
fuente
1
Cargar el mismo archivo en una instancia m1.medium EC2 a través de SCP desde mi Linode se ejecuta a aproximadamente 44 Mb / s (de acuerdo con iftop, por lo que la compresión no importa), que está mucho más cerca del límite de ancho de banda saliente de 50 Mb / s. Las cargas de S3 son aproximadamente un quinto más rápido. El último s3cmdadmite cargas de varias partes, pero no las carga simultáneamente, sino consecutivamente. ¿Hay una mejor utilidad para cargar a S3?
Tom Marthenal
He agregado estadísticas de velocidad de SCP (mi instancia de Linode -> EC2) a mi pregunta.
Tom Marthenal
¿Has intentado usar otras herramientas similares a s3cmd para realizar pruebas? Esto es para determinar que no es realmente s3cmd lo que es lento. Además, en caso de que s3cmd se esté cargando de alguna manera a través de HTTPS, puede intentar cambiar eso a HTTP. Otra idea es que el S3 en sí solo es más lento para cargar, ya que parece que no tienes problemas con EC2.
gekkz
44
Prueba s3multiput.
EEAA
11

Por si alguien se topa con esto ...

Tuve un problema en el que era muy lento cargar desde una instancia ec2 a un bucket s3, ¡resultó ser realmente simple, la región del bucket! Estaba usando instancias ec2 en el norte de california, cuando el depósito se creó como estándar de EE. UU., Fue muy lento de transferir, con el depósito configurado en el norte de california fue mucho más rápido.

rabinos
fuente
1

He visto muchos hilos en un foro sobre la carga lenta a S3 usando varios clientes, como las herramientas gratuitas de línea de comandos (escritas en Python, por cierto) y comerciales.

Aunque no tengo pruebas sólidas para usted, cambiar el cliente S3 (por ejemplo, Cloud Berry Explorer) podría resolver su problema. ¡Intentalo! :)

Valentin
fuente
3
¿En un servidor sin cabeza? No lo creo
EEAA
Deje que pruebe con otro cliente antes de juzgar. Hay s3cp, por ejemplo.
Valentin
+1. En EC2, simplemente cambiar de FileZilla a CuteFTP hizo una mejora de rendimiento x30.
Calvin1602