2012-02-24 37 views
5

Estoy colocando una gran cantidad de elementos pequeños en S3 con la API REST. La carga útil promedio es ~ 10 bytes.Amazon S3: solicitudes PUT máximas por segundo

Los artículos van todos en un solo cubo, y se han aleatorizado nombres (es decir, no hay un orden lexicográfico)

De EC2, he logrado una tasa de 4-500 por segundo. Estoy usando un grupo de subprocesos de 96 subprocesos, con 64 conexiones TCP.

De vez en cuando obtengo un HTTP 500, pero aún no he recibido 503, con la intención de indicar que el cliente reduce la velocidad de las solicitudes.

¿Alguien sabe lo que puedo lograr de manera realista? Sé que el conducto entre EC2 y S3 puede gestionar un rendimiento de 20 MB/s, así que espero hacerlo un poco mejor.

Respuesta

1

No debería sorprender que vea un rendimiento deficiente al utilizar REST para la transferencia de cargas tan pequeñas.

La forma de hacerlo mejor es reestructurar la naturaleza de su protocolo o almacenamiento para que la sobrecarga de la transacción no sea el factor dominante.

De hecho, el tamaño de la tubería es inmaterial a su pregunta, ya que la está rellenando completamente con la sobrecarga de HTTP; por ejemplo, si pudieras duplicar el rendimiento de la conexión, podrías enviar el doble de gastos indirectos inútiles sin cambios efectivos en los datos utilizables.

+1

Me doy cuenta de que la mayoría de los datos que se transfieren son información HTTP. No tengo control sobre el protocolo; S3 es REST y HTTP solamente. Lamentablemente, no hay funcionalidad por lotes para S3 y debido a la naturaleza de mi aplicación; embalar pequeños trozos de datos en grandes no es factible. – user756079

+0

¿Hay alguna razón por la cual no está poniendo estas cosas en SimpleDB, que admite operaciones de lotes? ¿Deben ser accesibles a través de HTTP directamente? – Daan

+0

@ user756079 - Sé que no tiene control sobre el protocolo de transporte, pero sí tiene control sobre lo que envía a través de ese canal. Dado que hay un factor que no puede cambiar, debe trabajar con lo que pueda, lo que significa repensar el contenido (y el tamaño) de su carga útil. – msw