ローカルファイルを AWS Storage Gateway のネットワークファイルシステム (NFS) またはサーバーメッセージブロック (SMB) ファイル共有にコピーしたいのですが、転送速度が遅いです。アップロードのパフォーマンスを向上させるにはどうすればよいですか?
解決方法
ローカルファイルを Storage Gateway のファイル共有にコピーする際のパフォーマンスを向上させるには、次の方法を検討してください。
注: ファイルゲートウェイはオブジェクトストアキャッシュであり、ファイルサーバーではありません。これは、ファイルゲートウェイのパフォーマンス特性がファイルサーバーのパフォーマンス特性と異なることを意味します。
ワークロードをスケールします。
最高のパフォーマンスを得るには、スレッドまたはクライアントを追加してワークロードをスケールします。ファイルのディレクトリを転送する場合、ファイルゲートウェイは、ワークロードがマルチスレッドであるか、複数のクライアントを必要とする場合に最適にスケールします。ファイル管理ツールを確認し、ツールがデフォルトでシングルスレッドアップロードを実行するかどうかを確認します。
小さなファイルや大きなファイルを転送する場合は、複数のスレッドまたはクライアントを使用することがベストプラクティスです。複数のスレッドを使用して大きなファイル (それぞれ数十または数百 MiB) を転送すると、最高のスループット (MiB/秒) が得られます。新しいファイルを作成する際のオーバーヘッドがあるため、小さなファイルを多数転送すると、大きなファイルでの同じワークロードと比較して、スループット (MiB/秒) が低下します。
Windows でマルチスレッドコピーを実行するには、Microsoft のファイルコピーツールである robocopy を使用してください。
注: 小さいファイルの転送については、転送レートを MiB/秒ではなく、ファイルの転送率/秒を測定します。ファイルの作成速度は、サイズの小さいファイルの転送に関連するワークロードスペースを占めることがあります。
キャッシュストレージをチューニングします。
ゲートウェイの合計キャッシュストレージサイズを、アクティブなワーキングセットのサイズに合わせてチューニングします。複数のローカルディスクを使用するキャッシュは、データへのアクセスを並列化し、1 秒あたりの入出力オペレーション (IOPS) を高めることができます。詳細については、Amazon Simple Storage Service (Amazon S3) ファイルゲートウェイのパフォーマンスガイダンスを参照してください。
また、ゲートウェイの CachePercentDirty メトリクスをモニタリングしてください。このメトリクスは、S3 バケットに保持されていないデータによって占有されているキャッシュストレージの割合を返します。CachePercentDirty の値が高いと、ゲートウェイのキャッシュストレージがゲートウェイへの書き込みをスロットリングする可能性があります。
より高性能なディスクを使います。
ゲートウェイのキャッシュストレージには、専用テナンシーを備えたソリッドステートドライブ (SSD) で、バックアップされたディスクを使用するのがベストプラクティスです。IOPS の枯渇を防ぐため、基盤となる物理ディスクを他の仮想マシンと共有しないのが理想的です。
ディスク IOPS を測定するには、CloudWatch のサンプル統計とともに ReadBytes と WriteBytes メトリクスを使用します。原則として、ゲートウェイのこれらのメトリクスを確認するときは、ディスク関連のボトルネックを示すために、低スループットと低 IOPS のトレンドを探してください。
CloudWatch の IOWaitPercent メトリクスをモニタリングし、CPU がローカルディスクからの応答を待っている時間の割合が報告されます。10 % を超える値は通常、基盤となるディスクにボトルネックがあることを示し、ディスクの速度が遅いことが原因である可能性があります。この場合は、ディスクを追加してゲートウェイで利用可能な IOPS を増やします。
注: Amazon Elastic Compute Cloud (Amazon EC2) ベースのゲートウェイでは、インスタンスの Amazon Elastic Block Store (Amazon EBS) スループットも制限の要因になる可能性があります。ゲートウェイのホスト仮想マシンまたは Amazon EC2 インスタンスの CPU と RAM で、AWS へのゲートウェイのスループットがサポートされていることを確認します。例えば、EC2 インスタンスタイプごとに異なるベースラインスループットがあります。バーストスループットが使い果たされた場合、インスタンスではベースラインスループットが使用されます。これにより、AWS へのアップロードスループットが制限されます。ゲートウェイが EC2 インスタンスでホストされている場合は、インスタンスの NetworkOut メトリクスを確認します。テスト中に NetworkOut メトリクスがベースラインスループットにとどまる場合は、インスタンスをより大きなインスタンスタイプに変更することを検討してください。