Amazon EFS パフォーマンスのヒント - Amazon Elastic File System

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon EFS パフォーマンスのヒント

Amazon EFS を使用する場合は、次のパフォーマンスのヒントに留意してください。

平均 I/O サイズ

Amazon EFS は分散型であるため、可用性、耐久性、およびスケーラビリティが高いレベルで実現されています。分散型のアーキテクチャによって、それぞれのファイル操作のレイテンシーオーバーヘッドも小さくなります。このオペレーションあたりのレイテンシーのため、通常は平均 I/O サイズの増加に応じて全体のスループットが向上します。大量のデータにオーバーヘッドが分散するためです。

同時接続

Amazon EFS ファイルシステムは、最大数千台の Amazon EC2 およびその他のAWSコンピューティングインスタンスを同時に取得します。より多くのインスタンス間でアプリケーションの並列化が可能である場合、全体のコンピューティングインスタンス間でファイルシステムのスループットレベルを高くすることができます。

リクエストモデル

ファイルシステムへの非同期書き込みを有効にすることにより、保留中の書き込みオペレーションは、非同期で Amazon EFS に書き込まれる前に、Amazon EC2 インスタンスでバッファリングされます。非同期書き込みは、通常レイテンシーが低くなります。非同期書き込みを実行するとき、カーネルはキャッシュの追加のメモリを使用します。同期書き込みを有効にしたファイルシステム、またはキャッシュをバイパスするオプション (たとえば、O_DIRECT) を使用してファイルを開くファイルシステムは、Amazon EFS に対して同期リクエストを発行します。各オペレーションはクライアントと Amazon EFS の間のラウンドトリップを通過します。

注記

選択したリクエストモデルでは、整合性 (複数の Amazon EC2 インスタンスを使用している場合) と速度にトレードオフがあります。

NFS クライアントのマウント設定

で説明されている推奨マウントオプションを使用していることを確認します。詳細については、EFS ファイルシステムをマウントするおよびマウントに関するその他の考慮事項。Amazon EFS は、ファイルシステムを Amazon EC2 インスタンスにマウントするときに、Network File System バージョン 4.0 と 4.1 (NFSv4) プロトコルをサポートします。NFSv4.1 は、より高いパフォーマンスを提供します。macOS Big Surを実行している Amazon EC2 Mac インスタンスでは、NFSv4.0 のみがサポートされます。

注記

ファイルシステムをマウントするときに、NFS クライアントの読み込みおよび書き込みバッファのサイズを 1 MB に増やすことができます

NFS を最適化するread_ahead_kbサイズ

注記

Linux カーネルバージョン 5.4.* の場合、Linux NFS クライアントはデフォルトのread_ahead_kbの値が 128 KB です。この値を 15 MB に増やすことをお勧めします。

NFS のread_ahead_kb属性は、シーケンシャル読み取り操作中に先読みまたはプリフェッチするLinuxカーネルのためのキロバイト数を定義します。5.4.* より前のバージョンの Linux カーネルでは、read_ahead_kb値は、NFS_MAX_READAHEADの値によってrsize(クライアントがマウント・オプションで設定したリード・バッファ・サイズ)。を使用する場合推奨されるマウントオプションの場合、この数式はread_ahead_kbを 15 MB に設定します。ただし、Linux カーネルバージョン 5.4.* 以降では、Linux NFS クライアントはデフォルトのread_ahead_kbの値が 128 KB です。

設定することをお勧めしますread_ahead_kbサイズを 15 MB に設定します。

Amazon EFS マウントヘルパーは、amazon-efs-utilsバージョン1.30.2以降では、read_ahead_kb等しく 15 *rsizeファイルシステムをマウントした後、15 MB です。

Linux カーネル 5.4 以降では、マウントヘルパーを使用してファイルシステムをマウントしない場合は、read_ahead_kbを 15 MB に設定すると、パフォーマンスが向上します。次のコマンドを使用して、ファイルシステムをマウントした後、これを実行します。Replace:

  • 読み取り値-KB希望のサイズ(キロバイト単位)

  • EFSマウントポイントをファイルシステムのマウントポイントで置き換えます。

sudo bash -c "echo read-ahead-value-in-kb > /sys/class/bdi/0:$(stat -c '%d' efs-mount-point)/read_ahead_kb"

次の例は、read_ahead_kbサイズを 15 MB に設定します。

sudo bash -c "echo 15000 > /sys/class/bdi/0:$(stat -c '%d' efs)/read_ahead_kb"

Amazon EC2 インスタンスの最適化

多数の読み取りおよび書き込みオペレーションを実行するアプリケーションは、そうでないアプリケーションよりも多くのメモリまたはコンピューティングキャパシティーを必要とします。Amazon EC2 インスタンスを起動するときは、アプリケーションに必要なこれらのリソースの量を持つインスタンスタイプを選択します。Amazon EFS ファイルシステムのパフォーマンス特性は、EBS 最適化インスタンスの使用に依存しません。

暗号化とパフォーマンス

Amazon EFS は、2 つの暗号化形式、転送時の暗号化と保管時の暗号化をサポートします。ファイルシステムの暗号化のいずれかまたは両方のタイプを有効にすることを選択すると、I/O レイテンシーとスループットへの影響は最小限になります。

汎用パフォーマンスモードでのファイルシステムの総スループット、インスタンスあたりのスループット、および 1 秒あたりのオペレーションに関する Amazon EFS の詳細については、「」を参照してください。Amazon EFS のクォータと制限