我使用REST API将大量小项目放入S3。平均有效载荷约为10个字节。
这些项目都进入一个桶,并有随机名称(即没有词典顺序)
从EC2开始,我的速度达到了每秒4-500。我正在使用96个线程的线程池,具有64个TCP连接。
我偶尔会收到一个HTTP 500,但尚未收到503 - 意味着客户端会降低请求率。
有谁知道我能够实际获得什么?我知道EC2和S3之间的管道可以管理20 MB / s的吞吐量,所以我希望能做得更好。
答案 0 :(得分:1)
使用REST进行传输以获得如此微小的有效负载时,您会发现性能不佳应该不足为奇。
做得更好的方法是重构协议或存储的性质,以便交易开销不是主导因素。
事实上,管道的大小对你的问题来说并不重要,因为你要用HTTP开销完全填充它;例如,如果你可以将连接的吞吐量加倍,你就可以发送两倍的无用开销,实际上没有可用数据的变化。