Amazon S3のストレージ:AWS CLIアップロードツールの速度と、各ファイルのサイズとの間の関係を探求します

1.背景

同社は最近、最近CEPHストレージのフルFTPファイルストレージ容量によって変換され、ストレージ環境統一しました。ビジネスグループは約16分を必要とする30万1.3ギガバイトのファイルへの一括アップロードファイルのFTPアクセスを表明しています。CEPHは今だけ従来の速度369キロバイト/ sで1時間かけてスイッチング格納する必要があります。私たちはどのように改善するか尋ねることができます。

会社の内部ネットワークおよびストレージ環境はテストを強調しています。
調査レポートのCEPHストレージシステム性能試験を読み書きします。

私たちは、S3のファイルアップロードインターフェースを使用している、それは、上記のcephrgwインターフェイスのために、です。おそらく高速20メガバイト/秒の。

図2は、最初にすべての私は、認証用のJavaプログラムを使用します。

私は彼が、データ・セットは確かに非常に遅いアップロードの速度で送信されることがわかりました。そして、一般的なファイルのアップロードは、約10倍の格差があります。AWS-javaの-S3 SDKスレッドプールのサイズ変更後。効果が明らかにされていません。私は、使用jconsoleをスレッドを観察するために使用しました

3、迅速な検証のためにAWS CLIを使用して

AWS CLIは、より完全なログと、のpythonを書くために使用しています。
インストールガイドします。https://docs.amazonaws.cn/cli/latest/userguide/install-windows.html
同時ログの数を調整して設定します。https://amazonaws-china.com/cn/blogs/china/amazon-s3 -depth・オブ・プラクティス・シリーズ- S3-CLI-深さ解析-およびパフォーマンス・テスト/
バッチ私はBandizipを(7zipをのみ1MBのボリュームサイズよりも多くをサポート)を使用し、異なるサイズのファイルを生成します。http:// WWW .bandisoft.com / bandizip /
同時要求の数やセグメントサイズがIに設定されています:
S3 =
max_concurrent_requests = 50
multipart_threshold = 10メガバイト
multipart_chunksize = 6メガバイト
アップロードコマンド:
AWS S3 CP C:\アプリケーション\ qolfile \ S3:// IBAS-Cu系/ OSS /公共--endpoint-URLはhttp: //oss.ts-pfecs.epay --recursive
コマンドパラメータを次のように
CPを:コピーファイルの意味
はC:\アプリ\ qolfile:ローカルディレクトリ
S3:// CU-IBAS / OSS /公共:S3先端アドレス、バケットを備え名とパス
--endpoint-URLのhttp://oss.ts-pfecs.epayは:リモートエンドポイントのアドレスを指定し
--recursiveを:フォルダ内のファイルの再帰アップロードを表し

ログファイルにアップロードして保存:
AWS S3 CP C:\アプリケーション\ qolfile \ S3://のCu-IBAS / OSS /公共--endpoint-URLのHTTP://oss.ts-pfecs.epay --recursive - -debug> upload.txt 2>&1

upload.txt的文件部分内容摘要
2019年7月17日15:34:50,100 - ThreadPoolExecutor-1_2 - s3transfer.tasks - DEBUG -実行中のタスクUploadSubmissionTask(transfer_id = 2、{ 'transfer_future' <s3transfer.futures.transferfuture物体= "0x0000026005c559e8 = "=" "で"")}> kwargsからと{ 'クライアント' <botocore.client.s3物体= ""で= "" 0x0000026005b972b0 = ""> '設定':<s3transfer.manager.transferconfigオブジェクト= "" "=の" 0x0000026005bf8e48 = ""> 'osutil':<s3transfer.utils.osutilsオブジェクト= "" "=の" 0x0000026005bf8eb8 = ""> 'request_executor':<s3transfer.futures.boundedexecutorオブジェクト= ""で= "" 0x0000026005c43080 = ""> 'transfer_future' <s3transfer.futures.transferfutureオブジェクト= "}> 0x0000026005c559e8 = ""=" "で"
2019年7月17日15:34:50101 - ThreadPoolExecutor -1_3 - s3transfer.tasks - DEBUG - UploadSubmissionTask(transfer_id = 3、{ 'transfer_future' <s3transfer.futures.transferfuture物体= "" =で"" 0x0000026005c6b128 = "" >})待機下記先物について[]のための
2019年7月17日15:34である:50101 - ThreadPoolExecutor-1_3 - s3transfer.tasks - DEBUG - UploadSubmissionTask(= transfer_id 3、{ 'transfer_future':
49,50とThreadPoolExecutor 。そして発効に代わって、同時リクエスト数の他の情報と、私はテストでは、異なるファイルサイズを高速化しました:

サブボリュームのファイルサイズ 観測アップロード速度
1メガバイト 1.5メガバイト/秒
500キロバイト 800キロバイト/秒
10キロバイト 390キロバイト/秒
1キロバイト 100キロバイト/秒

これは、アップロードの速度のために、各ファイルのファイルサイズが影響力のある明確な意味します。すべてのファイルのサイズは1MB以上よりも大きい場合。帯域幅の設​​定では、適切なS3のアップロードは、上で実行することができます。各ファイルは1キロバイトの下よりも小さい場合。アップロードの速度が非常に遅くなります。

4、要約

小さなファイルデータセットの与えられたこの最初のケースでは、アップロード速度を向上させる方法はありません。ファイルを形成しながら、ファイルのアップロードモードは、バッチプロセスをスピードアップしながら、アプリケーション層は、使用されてもよいです。これは、生産者 - 消費者モデルを使用することです。キューイングでは、キューRedisのは、消費者のタスクを配置するために使用することができ、メモリキューを使用することができます。

 

おすすめ

転載: www.cnblogs.com/paxlyf/p/11201744.html