Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance AmazonS3:每秒最大PUT请求数_Performance_Http_Amazon S3 - Fatal编程技术网

Performance AmazonS3:每秒最大PUT请求数

Performance AmazonS3:每秒最大PUT请求数,performance,http,amazon-s3,Performance,Http,Amazon S3,我使用RESTAPI将大量的小项目放到S3中。平均有效负载约为10字节 所有项目都放在一个存储桶中,并具有随机名称(即没有字典顺序) 从EC2开始,我已经控制了每秒4-500次的速率。我使用的是96个线程的线程池,有64个TCP连接 我偶尔会收到HTTP 500,但尚未收到503,这意味着客户端会减慢请求速率 有人知道我能实际获得什么吗?我知道EC2和S3之间的管道可以管理20 MB/s的吞吐量,所以我希望做得更好。对于使用REST传输如此微小的有效负载,您会发现性能很差,这一点也不奇怪 做得更

我使用RESTAPI将大量的小项目放到S3中。平均有效负载约为10字节

所有项目都放在一个存储桶中,并具有随机名称(即没有字典顺序)

从EC2开始,我已经控制了每秒4-500次的速率。我使用的是96个线程的线程池,有64个TCP连接

我偶尔会收到HTTP 500,但尚未收到503,这意味着客户端会减慢请求速率


有人知道我能实际获得什么吗?我知道EC2和S3之间的管道可以管理20 MB/s的吞吐量,所以我希望做得更好。

对于使用REST传输如此微小的有效负载,您会发现性能很差,这一点也不奇怪

做得更好的方法是重新构造协议或存储的性质,使事务开销不是主要因素


事实上,管道的大小对您的问题并不重要,因为您正在用HTTP开销完全填充它;例如,如果您可以将连接的吞吐量增加一倍,那么在有效地不改变可用数据的情况下,您将能够发送两倍的无用开销。

我意识到传输的大部分数据都是HTTP信息。我对协议没有控制权;S3仅限于REST和HTTP。不幸的是,由于我的应用程序的性质,S3没有批处理功能;将小块数据打包成大块数据是不可行的。有没有理由不将这些数据放入SimpleDB中,SimpleDB支持批处理操作?它们需要通过HTTP直接访问吗?@user756079-我知道你不能控制传输协议,但你可以控制通过该通道发送的内容。因为有一个因素是不能更改的,所以您必须尽可能重新考虑有效负载的内容(和大小)。@Daan我考虑过SimpleDB,但它有大小(每个域10GB)和数量(每个域1b个项目)的存储限制。我的工作是企业规模的,我不确定从长远来看这是否足够