2017-10-04 2 views
0

multipart_thresholdとmutilpart_chunksizeの最適な設定を特定するための式はありますか?マルチパートアップロードを使用してS3に2 TBのファイルをアップロードしようとしている場合、しきい値とチャンクサイズに最適な値は何でしょうか。複数のパートのアップロード/ダウンロードを使用するスクリプトはいずれも感謝します。S3 multipartアップロードを実行しているときにmultipart_thresholdとmutilpart_chunksizeに最適な設定は何ですか?

+0

http://docs.aws.amazon.com/cli/latest/topic/s3-config.html –

答えて

1

単一の最適な設定はありません。最適な値は、aws-cliが実行されているシステムと問題のS3領域との間の待ち時間と使用可能な帯域幅、マシン上のCPUとネットワーク容量、およびオブジェクトのサイズ。

一部のシナリオでは、構成に関係なく、全体的なパフォーマンスに大きな違いはありません。

おそらく質問したいずれかのパラメータよりも重要なものは、max_concurrent_requestsです。これはデフォルトで10になります。

私は100Mbit/sのインターネット接続を持っていますが、私が頻繁に使用する最も遠いS3リージョンから80ms離れています。ちなみに、私はこの地域に約5Mbit/sでアップロードすることができますあたりなので、デフォルトでのデフォルト設定での最高のパフォーマンスは約50 Mbit/s(5 Mbit/s×max_concurrent_requests - あなたの走行距離は大きく変わるかもしれません、5 Mbit/sは説明のためだけです)。

私がmax_concurrent_requestsを増やした場合、リソース(最大100 Mbit/sの接続)を最大限上回るまで、ネット転送速度はほぼ直線的に増加します。ただし、total_upload_size÷multipart_chunksizeを超えてmax_concurrent_requestsを増やすと、それ以上の利益は得られません。 max_concurrent_requestsを驚くほど大きな値に増やすと、信頼性を超えて接続が飽和し、パケットの廃棄によってエラー、再試行、再送信、その他の非効率性が発生します。これをどれだけ増やしてもらえれば、有益である。独立し

、私は実際にデータを送信することに比べて、ハウスキーピングに比例少ないまたはより多くの時間を費やすのでmultipart_chunksizeは、私のパフォーマンスと、それはこれを低下させます減少を改善する傾向があるが、唯一の小さな度になるjncreasing - ので、大きな私の接続が速くきれいであればmultipart_chunksizeが良いでしょう。私の接続が遅く、エラーを起こしやすい場合は、さらに悪くなります。マルチパートのアップロードは失敗したパーツアップロードから回復できますが、ハードエラー後の最小再送信単位はmultipart_chunksizeです。ハードエラーから回復するためには、値を大きくすると再送する量が増えます。これは、TCP再送信ではなく、完全に失敗した部分要求を指します。

total_object_size、max_concurrent_requests、およびmultipart_chunksizeには明確な相互作用があります。

少なくとも「面白い」パラメータは、multipart_thresholdです。これは、マルチパートメカニズムが使用されているオブジェクトのサイズです。multipart_thresholdより小さいオブジェクトはマルチパートを使用しません。速くクリーンな接続では、この値を増やすことをお勧めしますが、しきい値を超えると値が大きいほど転送が遅くなります。これは、マルチパートで許可されているパラレルルールを使用しないためです。

2 TBファイルの場合、1つのファイルを10,000個の異なる部分にアップロードする必要があり、200 MB×10,000は2 TBであるため、multipart_chunksizeの値が200 MB未満の場合は意味がありません。 aws-cliがあなたの指定を上書きしてより大きな値を使用しない限り、小さな値は実際には無効でエラーになることがあります。その理由は、10,000の部分がS3サービス自体によって課せられているからです。テストされていない。

2 TBファイルの場合、合計サイズが5 GBを超えるオブジェクトに対してはマルチパートが必須であるため、multipart_thresholdは影響ありません。

2 TBのファイルの場合、スループットを最適化するには、接続が維持できる最大値をmax_concurrent_requestsに設定する必要があります。これを最適値に調整するには、帯域幅の使用状況を監視するメカニズムが必要です。

関連する問題