2011-10-13 6 views
6

私は毎分S3にアップロードするために何千もの小さなファイル(約1 KB)を持っています。 ループ内のすべてのファイルをアップロードすると、「HTTPリクエストを送信する - S3のHTTP応答を待つ - 次のリクエストを送信する - 次の応答を待つ...」 S3の間に2倍の待ち時間があるため、私のサーバー。 もちろん、私はすでにHTTPキープアライブヘッダーを使用しています。S3はHTTPパイプライニングをサポートしていますか?

したがって、対応する(HTTPパイプライン処理)を待たずに複数のHTTPリクエストを送信しようとします。私はバッチで20リクエストを送り、20レスポンスを待つ。前回の返答時に依頼を依頼することができるので、これで時間が大幅に節約できると私は思った。

しかし、世界をより良くするわけではありません。

約200msで20件のリクエストを送信してから、応答を受信しようとします。 this graphのように、最初の応答を受け取った後、要求を送信するのと同じくらい速く応答を受け取ることができると思いました。

私が最初の応答を受け取った後、すべての応答に対して約300ms待たなければならないという事実があります。 1つのリクエストを送信して1つのレスポンスを受信するのに比べて、それほど良くなるわけではありません。

なぜパイプライン技術の時間を短縮できないのですか? S3はすべてのリクエストに時間がかかるのはなぜですか? S3はHTTPパイプライニングをサポートしていますか?

ありがとうございました。

答えて

4

各リクエストの遅延問題を回避するためのAmazon S3のスポーツ並列化。

S3に数百の同時要求を行い、非常に短時間で大きなファイルのバッチをアップロードすることができます。

関連する問題