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.
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
¿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
@ 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