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

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

Amazon EFS パフォーマンス

以下のセクションでは、Amazon EFS パフォーマンスの概要と、ファイルシステムの設定が主要なパフォーマンスディメンションにどのように影響するかをご紹介します。また、ファイルシステムのパフォーマンスを最適化するための重要なヒントや推奨事項もいくつか紹介します。

パフォーマンスの概要

ファイルシステムのパフォーマンスは、通常、レイテンシー、スループット、1 秒あたりの入出力オペレーション (IOPS) のディメンションを使用して測定されます。これらの次元にわたる Amazon EFS のパフォーマンスは、ファイルシステムの設定によって異なります。次の設定は、Amazon EFS ファイルシステムのパフォーマンスに影響します。

  • ファイルシステムのタイプ — リージョンまたは 1 ゾーン

  • パフォーマンスモード — 汎用モードまたは最大 I/O

    重要

    最大 I/O パフォーマンスモードは、汎用パフォーマンスモードよりもオペレーションごとのレイテンシーが高くなります。パフォーマンスを向上させるには、常に汎用パフォーマンスモードを使用することをお勧めします。詳細については、「パフォーマンスモード」を参照してください。

  • スループットモード — エラスティック、プロビジョニングされた、バースティング

次の表は、汎用パフォーマンスモードを使用するファイルシステムのパフォーマンス仕様と、ファイルシステムタイプとスループットモードのさまざまな組み合わせの概要を示しています。

汎用パフォーマンスモードを使用するファイルシステムのパフォーマンス仕様
ストレージとスループット設定 レイテンシー 最大 IOPS 最大スループット

ファイルシステムのタイプ

スループットモード

読み込みオペレーション

書き込みオペレーション

読み込みオペレーション

書き込みオペレーション

ファイルシステム単位の読み取り1

ファイルシステム単位の書き込み1

クライアントごとの読み取り/書き込み

リージョン別

Elastic

最低 250 マイクロ秒 (µs)

最低 2.7 ミリ秒 (ms) 90,000~250,0002 50,000

3~20 ギビバイト/秒 (GiBps)

1~5 GiBps

1,500 メビバイト/秒 (MiBps)3

リージョン別

プロビジョン済み

最低 250 µs

最低 2.7 ミリ秒 55,000 25,000

3~10 GiBps

1~3.33 GiBps

500 MiBps

リージョン別

バースト

最低 250 µs

最低 2.7 ミリ秒 35,000 7,000

3~5 GiBps

1~3 GiBps

500 MiBps

1 ゾーン

Elastic、プロビジョンド、バースト

最低 250 µs

最低 1.6 ミリ秒

35,000 7,000

3 GiBps4

1 GiBps4

500 MiBps
注記

脚注:

  1. 読み取り/書き込みの最大スループットは、 AWS リージョンによって異なります。スループットが AWS リージョンの最大スループットを上回る場合は、スループットクォータを増やす必要があります。追加スループットのリクエストは、Amazon EFS サービスチームによって case-by-case 考慮されます。承認はワークロードの種類によって異なる場合があります。クオータ増のリクエストについては、「Amazon EFS クォータ」を参照してください。

  2. Elastic スループットを使用するファイルシステムでは、アクセス頻度の低いデータに対して最大 90,000 の読み取り IOPS を、頻繁にアクセスされるデータに対して最大 250,000 の読み取り IOPS を駆動できます。最大 IOPS を実現するには、追加の推奨事項が適用されます。詳細については、「高いスループットと IOPS を必要とするワークロードの最適化」を参照してください。

  3. Elastic スループットを使用し、バージョン 2.0 以降の Amazon EFS クライアント (amazon-efs-utils バージョン) または Amazon EFS CSI ドライバー (aws-efs-csi-driver) を使用してマウントされたファイルシステム MiBps の場合、最大合計読み取りスループットと書き込みスループットは EFS 1,500 です。他のすべてのファイルシステムでは、スループット制限は 500 です MiBps。Amazon EFS クライアントの詳細については、「」を参照してください。 Amazon EFS ツールのインストール

  4. バーストスループットを使用する 1 ゾーンファイルシステムは、バーストスループットを使用するリージョンファイルシステムと同じ per-file-system 読み取りおよび書き込みスループット量 (最大読み取りは読み取り GiBps 用に 5、書き込み GiBps 用に 3) を駆動できます。

ストレージクラス

Amazon EFS ストレージクラスは、ユースケースに応じて最も効果的なストレージになるように設計されています。

  • EFS 標準ストレージクラスは、ソリッドステートドライブ (SSD) ストレージを使用して、頻繁にアクセスされるファイルのレイテンシーを最小限に抑えます。このストレージクラスは、読み取りの場合は 250 マイクロ秒、書き込みの場合は 2.7 ミリ秒という低いバイトレイテンシーを提供します。

  • EFS 低頻度アクセス (IA) および EFS Archive ストレージクラスは、頻繁にアクセスされるデータに必要なレイテンシーパフォーマンスを必要としない、アクセス頻度の低いデータを保存します。これらのストレージクラスでは、最初のバイトのレイテンシーが数十ミリ秒になります。

EFS ストレージクラスの詳細については、「EFS ストレージクラス」を参照してください。

パフォーマンスモード

Amazon EFS には、汎用モードと最大 I/O という 2 つのパフォーマンスモードがあります。

  • 汎用モードはオペレーションごとのレイテンシーが最も低く、ファイルシステムのデフォルトのパフォーマンスモードです。1 ゾーンファイルシステムは常に汎用パフォーマンスモードを使用します。パフォーマンスを向上させるには、常に汎用パフォーマンスモードを使用することをお勧めします。

  • 最大 I/O モードは前世代のパフォーマンスタイプで、汎用モードよりも高いレイテンシーに耐えられる高度に並列化されたワークロード向けに設計されています。最大 I/O モードは、1 ゾーンファイルシステムまたはエラスティックスループットを使用するファイルシステムではサポートされません。

    重要

    最大 I/O ではオペレーションごとのレイテンシーが高くなるため、すべてのファイルシステムに汎用パフォーマンスモードを使用することをお勧めします。

汎用パフォーマンスモードを使用して、ワークロードがファイルシステムで使用可能な IOPS 制限内に収まるようにするには、 PercentIOLimit CloudWatch メトリクスをモニタリングできます。詳細については、「Amazon EFS の Amazon CloudWatch メトリクス」を参照してください。

アプリケーションは、パフォーマンスモードに関連する制限まで IOPS を柔軟にスケールアップできます。IOPS については個別に請求されることはありません。IOPS はファイルシステムのスループット計算に含まれます。すべてのネットワークファイルシステム (NFS) リクエストは、4 KB (スループット)、または実際のリクエストとレスポンスサイズのどちらか大きいほうのスループットとして計上されます。

スループットモード

ファイルシステムのスループットモードによって、ファイルシステムで使用できるスループットが決まります。Amazon EFS には、エラスティック、プロビジョニングされた、バーストの 3 つのスループットモードがあります。読み取りスループットは、書き込みスループットよりも読み取りスループットを高くするために割引されています。各スループットモードで使用できる最大スループットは、 AWS リージョンによって異なります。各リージョンのファイルシステムの最大スループットの詳細については、「Amazon EFS クォータ」を参照してください。

ファイルシステムは、読み取りと書き込みの合計スループットを 100% 達成できます。たとえば、ファイルシステムが読み取りスループット制限の 33% を使用している場合、ファイルシステムは同時に書き込みスループット制限の最大 67% を達成できます。ファイルシステムのスループット使用率は、コンソールの「ファイルシステム詳細」ページにあるスループット使用率 (%) グラフでモニタリングできます。詳細については、「 CloudWatch メトリクスを使用したスループットパフォーマンスのモニタリング」を参照してください。

ファイルシステムの適正なスループットモードを選択します。

ファイルシステムに適したスループットモードの選択は、ワークロードのパフォーマンス要件によって異なります。

  • Elastic throughput (推奨) – 予測が難しい急激または予測不可能なワークロードやパフォーマンス要件がある場合、またはアプリケーションが 5% 以下の average-to-peak 比率でスループットを駆動する場合は、デフォルトの Elastic スループットを使用します。詳細については、「Elastic スループット」を参照してください。

  • プロビジョンドスループット – ワークロードのパフォーマンス要件がわかっている場合、またはアプリケーションが 5% 以上の average-to-peak 比率でスループットを駆動している場合は、プロビジョンドスループットを使用します。詳細については、「プロビジョニングされたスループット」を参照してください。

  • バーストスループット – ファイルシステムのストレージ量に応じてスケーリングするスループットが必要な場合は、バーストスループットを使用します。

    バーストスループットを使用した後に、アプリケーションがスループットに制約があることが判明した場合 (例えば、許可されたスループットの 80% 以上を使用しているか、バーストクレジットをすべて使用している場合)、Elastic スループットまたはプロビジョンドスループットを使用する必要があります。詳細については、「スループットのバースト」を参照してください。

Amazon を使用して CloudWatch 、MeteredIOBytesメトリクスとメトリクスを比較することで、ワークロード average-to-peak の比率を判断できますPermittedThroughput。Amazon EFS メトリクスの詳細については、「Amazon EFS の Amazon CloudWatch メトリクス」を参照してください。

Elastic スループット

Elastic スループットを使用しているファイルシステムの場合、Amazon EFS はワークロードアクティビティのニーズに合わせてスループットパフォーマンスを自動的にスケールアップまたはスケールダウンします。Elastic スループットは、パフォーマンス要件が予測が難しい急激または予測不可能なワークロード、またはスループットを平均してピークスループットの 5% 以下 ( average-to-peak比率) に駆動するアプリケーションに最適なスループットモードです。

Elastic スループットを使用するファイルシステムのスループットパフォーマンスは自動的にスケーリングされるため、アプリケーションのニーズに合わせてスループット容量を指定またはプロビジョニングする必要はありません。料金は、読み書きされたメタデータとデータの量に対してのみ支払い、Elastic スループットの使用中にバーストクレジットを蓄積したり消費したりすることはありません。

注記

Elastic スループットは、汎用パフォーマンスモードを使用するファイルシステムでのみ使用できます。

リージョンごとの Elastic スループット制限の詳細については、「」を参照してください引き上げることができる Amazon EFS のクォータ

プロビジョニングされたスループット

プロビジョンドスループットでは、ファイルシステムのサイズやバーストクレジットバランスに関係なく、ファイルシステムが駆動できるスループットのレベルを指定します。ワークロードのパフォーマンス要件がわかっている場合、またはアプリケーションがスループットを average-to-peak 5% 以上向上させる場合は、プロビジョンドスループットを使用します。

プロビジョンドスループットを使用するファイルシステムの場合、ファイルシステムで有効になっているスループットの量に対して課金されます。1 か月に請求されるスループット量は、標準ストレージから提供されるファイルシステムのベースラインスループットを超えてプロビジョニングされたスループットを、 AWS リージョンの一般的なバーストベースラインスループット制限まで超えてプロビジョニングされたスループットに基づいて決まります。

ファイルシステムのベースラインスループットがプロビジョンドスループット量を超える場合、ファイルシステムで許可されているバーストスループット (その の一般的な \バーストベースラインスループット制限まで AWS リージョン) が自動的に使用されます。

RegionProvisioned スループットごとの制限の詳細については、「」を参照してください引き上げることができる Amazon EFS のクォータ

スループットのバースト

バーストスループットは、ファイルシステムのストレージ量に応じてスケールするスループットを必要とするワークロードに推奨されます。バーストスループットでは、ベーススループットは標準ストレージクラスのファイルシステムのサイズに比例し、ストレージの 1 GiB KiBps あたり 50 のレートになります。バーストクレジットは、ファイルシステムの消費量が基本スループットレートを下回ると発生し、スループットが基本レートを超えると差し引かれます。

バーストクレジットが利用可能な場合、ファイルシステムはストレージ 1 TiB あたり最大 100 MiBps のスループット、 AWS リージョン 上限まで、最低 100 のスループットを駆動できます MiBps。バーストクレジットが利用できない場合、ファイルシステムは 1 TiB 以上のストレージ MiBps あたり最大 50 個までドライブできます MiBps。

リージョンごとのバーストスループットについては、「」を参照してくださいGeneral resource quotas that cannot be changed

Amazon EFS バーストクレジットについて

バーストスループットでは、各ファイルシステムは、EFS 標準ストレージクラスに保存されているファイルシステムのサイズによって決定されるベースラインレートで、時間の経過とともにバーストクレジットを獲得します。ベースラインレートは、ストレージのテビバイト MiBps あたり 50 [TiB ] (ストレージの GiB KiBps あたり 50 に相当) です。Amazon EFS は、読み取りオペレーションを書き込みオペレーションの 3 分の 1 のレートまで計測し、ファイルシステムが読み取りスループットの GiB KiBps あたり最大 150、書き込みスループットの GiB KiBps あたり 50 のベースラインレートを駆動できるようにします。

ファイルシステムは、ベースラインの従量制レートでスループットを継続的に向上させることができます。ファイルシステムは、非アクティブであるか、スループットをベースラインの従量制レートより低くするたびに、バーストクレジットを蓄積します。蓄積されたバーストクレジットにより、ファイルシステムは、ベースラインレートを上回るスループットを駆動できます。

例えば、標準ストレージクラスに 100 GiB の計測データがあるファイルシステムのベースラインスループットは 5 です MiBps。24 時間の非アクティブ期間で、ファイルシステムは 432,000 MiB 分のクレジット (5 MiB × 86,400 秒 = 432,000 MiB) を獲得します。このクレジットは 100 で 72 MiBps 分間バーストするために使用できます (432,000 MiB ÷ 100 MiBps = 72 分)。

1 TiB を超えるファイルシステムは、残りの 50 パーセントで非アクティブになっていると、常に最大 50 パーセントの時間バーストすることができます。

次の表に、バーストの動作の例を示します。

ファイルシステムサイズ バーストスループット ベースラインスループット
スタンダードストレージの 100 GiB の計測データ
  • 1 日あたり最大 72 分間、読み取り専用で 300 (MiBps) までバーストするか、または

  • 1 日あたり最大 72 分間、 MiBps 書き込み専用で 100 回までバースト

  • 最大 15 個の MiBps 読み取り専用連続ドライブ

  • 最大 5 つの MiBps 書き込み専用連続駆動

スタンダードストレージの 1 TiB の計測データ
  • 1 日あたり 12 時間、 MiBps 読み取り専用で 300 までバーストする、または

  • 1 日あたり 12 時間、 MiBps 書き込み専用で 100 までバースト

  • 150 MiBps 回読み取り専用連続駆動

  • 50 MiBps 書き込み専用連続駆動

スタンダードストレージの 10 TiB の計測データ
  • 1 日あたり 12 時間 GiBps 、読み取り専用で 3 回バーストするか、または

  • 1 日あたり 12 時間、書き込み GiBps 専用にバーストする

  • 1.5 GiBps 読み取り専用を継続的に駆動する

  • 500 MiBps 書き込み専用連続駆動

一般的には、より大規模なファイルシステム
  • 1 日 12 時間、ストレージ 1 TiB あたり MiBps 読み取り専用 300 までバースト、または

  • ストレージ 1 TiB あたり 100 MiBps 書き込み専用まで 1 日 12 時間バースト

  • ストレージの 1 TiB あたり MiBps 読み取り専用 150 を継続的に駆動

  • ストレージの 1 TiB あたり 50 MiBps 書き込み専用連続駆動

注記

Amazon EFS は、ベースラインレートが低い場合でも、 MiBps すべてのファイルシステムに 1 の計測スループットを提供します。

ベースラインレートとバーストレートを決定するために使用されるファイルシステムサイズは、DescribeFileSystems API オペレーションで使用可能な ValueInStandard 計測サイズです。

ファイルシステムは、1 TiB より小さいファイルシステムの場合、2.1 TiB、または 1 TiB を超えるファイルシステムの場合は、1 TiB あたり 2.1 TiB の最大クレジットバランスを得ることができます。この動作は、ファイルシステムが連続して最大 12 時間バーストするのに十分なクレジットを蓄積できることを示しています。

スループットの切り替えとプロビジョニング量の変更に関する制限

既存のファイルシステムのスループットモードを切り替えたり、スループット量を変更したりできます。ただし、スループットモードをプロビジョンドスループットに切り替えるか、プロビジョンドスループット量を変更した後、次のアクションは 24 時間制限されます。

  • プロビジョンドスループットモードから Elastic またはバーストスループットモードへの切り替え。

  • プロビジョンドスループット量を減らします。

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

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

平均 I/O サイズ

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

高いスループットと IOPS を必要とするワークロードの最適化

高スループットと IOPS を必要とするワークロードの場合は、汎用パフォーマンスモードと Elastic スループットで設定されたリージョンファイルシステムを使用します。

注記

頻繁にアクセスされるデータに対して最大 250,000 読み取り IOPS を実現するには、ファイルシステムで Elastic スループットを使用する必要があります。

最高レベルのパフォーマンスを実現するには、アプリケーションまたはワークロードを以下のように設定して並列化を活用する必要があります。

  1. 使用中のクライアントの数と少なくとも同じ数のディレクトリを使用して、すべてのクライアントとディレクトリにワークロードを均等に分散します。

  2. 個々のスレッドを個別のデータセットやファイルに配置することで、競合を最小限に抑えます。

  3. 10 個以上の NFS クライアントにワークロードを分散し、1 つのマウントターゲットで 1 クライアントあたり少なくとも 64 スレッドにします。

同時接続

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

リクエストモデル

ファイルシステムへの非同期書き込みを有効にすることにより、保留中の書き込みオペレーションは、非同期で Amazon EFS に書き込まれる前に、Amazon EC2 インスタンスでバッファリングされます。非同期書き込みは、通常レイテンシーが低くなります。非同期書き込みを実行するとき、カーネルはキャッシュの追加のメモリを使用します。

同期書き込みが有効になっているファイルシステム、またはキャッシュをバイパスするオプション (たとえば、O_DIRECT) を使用してファイルを開く場合、Amazon EFS に対して同期リクエストが発行されます。各オペレーションはクライアントと Amazon EFS の間のラウンドトリップを通過します。

注記

選択したリクエストモデルでは、整合性 (複数の Amazon EC2 インスタンスを使用している場合) と速度にトレードオフがあります。同期書き込みを使用すると、次のリクエストを処理する前に各書き込みリクエストトランザクションを完了できるため、データ整合性が高まります。非同期書き込みを使用すると、保留中の書き込みオペレーションをバッファリングすることでスループットが向上します。

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

EFS ファイルシステムをマウントする および マウントに関する追加の考慮事項 で説明されている推奨マウントオプションを使用していることを確認します。

Amazon EC2 インスタンスにファイルシステムをマウントする場合、Amazon EFS はネットワークファイルシステムバージョン 4.0 および 4.1 (NFSv4) プロトコルをサポートします。NFSv4.1 は、NFSv4.0 (1,000 ファイル/秒未満) と比較して、並列小ファイル読み取りオペレーション (10,000 ファイル/秒以上) のパフォーマンスが向上しています。macOS Big Sur を実行している Amazon EC2 macOS インスタンスでは、NFSv4.0 のみがサポートされています。

次のマウントオプションは使用しないでください。

  • noacactimeo=0acregmax=0acdirmax=0 — これらのオプションは属性キャッシュを無効にするため、パフォーマンスに非常に大きな影響を与えます。

  • lookupcache=poslookupcache=none — これらのオプションはファイル名検索キャッシュを無効にします。これはパフォーマンスに非常に大きな影響を与えます。

  • fsc — このオプションはローカルファイルキャッシュを有効にしますが、NFS キャッシュの一貫性は変更されず、レイテンシーも短縮されません。

注記

ファイルシステムをマウントする際には、NFS クライアントの読み取りバッファと書き込みバッファのサイズを 1 MB に増やすことを検討してください。

スモールファイルのパフォーマンスを最適化する

ファイルの再オープンを最小限に抑え、並列処理を増やし、可能な限り参照ファイルをバンドルすることで、小容量ファイルのパフォーマンスを向上させることができます。

  • サーバーとの往復回数を最小限に抑えます。

    後にワークフローで必要になる場合、不必要にファイルを閉じないでください。ファイル記述子を開いたままにしておくと、キャッシュ内のローカルコピーに直接アクセスできます。ファイルのオープン、クローズ、メタデータのオペレーションは、通常、非同期的に行うことも、パイプラインを介して行うこともできません。

    小さいファイルの読み取りまたは書き込みでは、2 回のラウンドトリップが余分に必要になります。

    1 回のラウンドトリップ (ファイルを開く、ファイルを閉じる) には、メガバイトのバルクデータの読み取りまたは書き込みと同じくらいの時間がかかる場合があります。計算ジョブの開始時に入力ファイルまたは出力ファイルを 1 回開き、ジョブの実行中ずっと開いたままにしておくほうが効率的です。

  • 並列処理を使用すると、ラウンドトリップタイムの影響を軽減できます。

  • 参照ファイルを .zip のファイルにまとめます。アプリケーションによっては、ほとんど読み取り専用の小さな参照ファイルを大量に使用している場合があります。これらを .zip のファイルにバンドルすると、1 回のオープン/クローズの往復で多数のファイルを読み取ることができます。

    .zip 形式では、個々のファイルにランダムにアクセスできます。

ディレクトリパフォーマンスの最適化

同時に変更される非常に大きなディレクトリ (10 万ファイル以上) に対して一覧表示 (ls) を実行すると、Linux NFS クライアントが応答を返さずにハングアップすることがあります。この問題は Amazon Linux 2 カーネル 4.14、5.4、5.10 に移植されたカーネル 5.11 では修正されています。

可能であれば、ファイルシステムのディレクトリ数を 10,000 未満に抑えることをお勧めします。可能な限りネストされたサブディレクトリを使用します。

ディレクトリを一覧表示する際は、ファイル属性はディレクトリ自体に保存されていないため、必要ない場合には取得を避けます。

NFS を最適化する read_ahead_kb サイズ

NFS read_ahead_kb 属性は、シーケンシャル読み取りオペレーション中に Linux カーネルが先読みまたはプリフェッチするキロバイト数を定義します。

5.4.* より前のバージョンの Linux カーネルでは、read_ahead_kb の値は、NFS_MAX_READAHEADrsize の値 (マウントオプションで設定されたクライアント設定の読み取りバッファサイズ) を乗じて設定されます。推奨されるマウントオプションを使用する場合、この式は read_ahead_kb を15MBに設定します。

注記

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

amazon-efs-utils バージョン 1.33.2 以降で利用可能な Amazon EFS マウントヘルパーは、ファイルシステムをマウントした後、read_ahead_kb の値を 15 * rsize、または 15 MB に自動的に変更します。

Linux カーネル 5.4 以降では、マウントヘルパーを使用してファイルシステムをマウントしない場合は、パフォーマンスを向上させるために read_ahead_kb を手動で 15 MB に設定することを検討してください。ファイルシステムをマウントした後、次のコマンドを使用して read_ahead_kb 値をリセットできます。コマンドを使用する前に、次の値を置き換えます。

  • read-ahead-value-kb を希望するサイズ (キロバイト単位) に置き換えます。

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

device_number=$(stat -c '%d' efs-mount-point) ((major = ($device_number & 0xFFF00) >> 8)) ((minor = ($device_number & 0xFF) | (($device_number >> 12) & 0xFFF00))) sudo bash -c "echo read-ahead-value-kb > /sys/class/bdi/$major:$minor/read_ahead_kb"

たとえば、次の例では、 read_ahead_kb サイズを 15 MB に設定します。

device_number=$(stat -c '%d' efs) ((major = ($device_number & 0xFFF00) >> 8)) ((minor = ($device_number & 0xFF) | (($device_number >> 12) & 0xFFF00))) sudo bash -c "echo 15000 > /sys/class/bdi/$major:$minor/read_ahead_kb"