インスタンスのパフォーマンスについて

このページでは、Filestore インスタンスで使用できるパフォーマンス オプションについて説明し、パフォーマンスを最適化するための一般的な推奨事項を示します。コンソールを使用してゾーン インスタンスとリージョン インスタンスを作成すると、カスタム パフォーマンスがデフォルトで有効になり、特定のワークロードのニーズに合わせて容量とは別に IOPS をスケーリングできます。 Google Cloud

次の表に、カスタム パフォーマンス設定での低容量範囲と高容量範囲のパフォーマンスの上限の概要を示します。

容量の範囲 サービスティア 容量 TiB あたりのプロビジョニングされた IOPS
低容量範囲 リージョン(リージョンで小規模インスタンスを使用可能) 100 GiB ~ 10,239 GiB 4,000 ~ 17,000
リージョン(リージョンで小規模インスタンスを使用不可) 1 TiB ~ 9.75 TiB 4,000 ~ 17,000
Zonal 1 TiB ~ 9.75 TiB 4,000 ~ 17,000
高容量範囲 リージョン 10 TiB ~ 100 TiB 3,000 ~ 7,500
Zonal 10 TiB ~ 100 TiB 3,000 ~ 7,500

パフォーマンスの計算について

次の表に、TiB あたりのプロビジョニングされた IOPS と割り当てられた容量に基づくパフォーマンスの計算を示します。この計算は、TiB あたりの最小 IOPS 値と最大 IOPS 値で読み取り IOPS、書き込み IOPS、読み取りスループット、書き込みスループットの値がどのように変化するかを示すために、さまざまな容量範囲に基づいています。

詳細については、読み取り IOPS と書き込み IOPS をご覧ください。

容量の範囲 TiB あたりのプロビジョニングされた IOPS の最小値と最大値
容量 読み取り IOPS 書き込み IOPS 読み取りスループット(MiBps) 書き込みスループット(MiBps) 単一クライアントの読み取りスループット(MiBps) 単一クライアントの書き込みスループット(MiBps)
低容量範囲
(100 GiB ~ 10,239 GiB)
4,000 100 GiB 2,000* 600 47 16 47 16
600 GiB 2,344 703 55 19 55 19
1,024 GiB 4,000 1,200 94 32 94 32
10,239 GiB 39,996 11,999 940 320 450 260
17,000 100 GiB 2,000 600 47 16 47 16
600 GiB 9,961 2,988 234 80 234 80
1,024 GiB 17,000 5,100 400 136 400 136
10,239 GiB 169,983 50,995 3,995 1,360 450 260
高容量範囲
(10 TiB ~ 100 TiB)
3,000 10 TiB 30,000 9,000 705 240 705 240
7,500 100 TiB 750,000 225,000 17,625 6,000 1,600 800

* 小容量インスタンス機能へのアクセスに応じて、Filestore リージョン インスタンスの低容量範囲は 100 GiB ~ 10,239 GiB または 1 TiB ~ 9.75 TiB になります。詳細については、 小容量の Filestore インスタンスをご覧ください。

パフォーマンスのスケーリング

単一クライアントと数クライアントのシナリオでは、最大の NFS のパフォーマンスを実現するには、TCP 接続の数を nconnect マウント オプションで増やす必要があります。

特定のサービスティアでは、クライアントとサーバー間の接続数を次のように指定することをおすすめします。

階層 容量 接続の数
リージョン、ゾーン 1 ~ 9.75 TiB nconnect=2
リージョン、ゾーン 10 ~ 100 TiB nconnect=7
基本 SSD - nconnect=7
Enterprise - nconnect=2
高スケール SSD - nconnect=7

一般に、ファイル共有の容量が大きく、接続しているクライアント VM が少ないほど、nconnect で追加の接続を指定することでパフォーマンスが向上します。

推奨されるクライアント マシンタイプ

少なくとも 16 Gbps の下り(外向き)帯域幅を提供する Compute Engine マシンタイプn2-standard-8 など)を使用することをおすすめします。この下り(外向き)の帯域幅により、クライアントは頻繁にキャッシュ保存が行われるワークロードに対しておよそ 16 Gbps の読み取り帯域幅を確保できます。詳細については、ネットワーク帯域幅をご覧ください。

Linux クライアントのマウント オプション

次の NFS マウント オプション、特に hard マウントと async を使用し、rsize オプションと wsize オプションを使用して、Linux クライアントの VM インスタンスでの最適なパフォーマンスを実現することをお勧めします。NFS マウント オプションの詳細については、 nfs をご覧ください。

デフォルト オプション 説明
hard NFS クライアントは、NFS リクエストを無期限に再試行します。
timeo=600 NFS クライアントは、NFS リクエストを再試行するまで 600 デシ秒(60 秒)待ちます。
retrans=3 NFS クライアントは、NFS リクエストを 3 回試行してから、さらに復旧処理を行います。
rsize=524288 NFS クライアントは、NFS サーバーから READ リクエストごとに最大 524,288 バイトを受信できます。
: ベーシック ティア インスタンスの場合は、rsize 値を 1048576 に設定します。
wsize=524288 NFS クライアントは、WRITE リクエストごとに最大 524,288 バイトを NFS サーバーに送信できます。
resvport NFS クライアントは、このマウント ポイントの NFS サーバーと通信するときに特権ソースポートを使用します。
async NFS クライアントは、特定の条件が満たされるまで、NFS サーバーへのアプリケーション書き込みの送信を遅らせます。
注意: sync オプションを使用すると、パフォーマンスが大幅に低下します。

read_ahead_kb パラメータを使用して NFS 読み取りスループットを最適化する

NFS read_ahead_kb パラメータは、順次読み取りオペレーション中に Linux カーネルがプリフェッチするデータの量(KB 単位)を指定します。これにより、後続の読み取りリクエストをメモリから直接処理して、レイテンシを短縮し、全体的なパフォーマンスを向上させることができます。

Linux カーネル バージョン 5.4 以降の場合、Linux NFS クライアントはデフォルトの read_ahead_kb 値として 128 KB を使用します。 この値を 20 MB に増やすと、順次読み取りスループットが向上します。

Linux クライアント VM にファイル共有を正常にマウントしたら、次のスクリプトを使用して read_ahead_kb パラメータ値を手動で調整できます。

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

次のように置き換えます。

MOUNT_POINT_DIRECTORY は、ファイル共有がマウントされているディレクトリのパスです。

単一および複数のクライアント VM のパフォーマンス

Filestore のスケーラブルなサービスティアは、単一のクライアント VM ではなく、複数のクライアント VM 向けにパフォーマンスが最適化されています。

ゾーン、リージョン、エンタープライズ インスタンスの場合、完全なパフォーマンスを利用するには少なくとも 4 つのクライアント VM が必要です。これにより、基盤となる Filestore クラスタ内のすべての VM が完全に利用されます。

追加するコンテキスト用に、最小のスケーラブルな Filestore クラスタには 4 つの VM があります。各クライアント VM は、1 つの Filestore クラスタ VM とのみ通信します。 クライアントあたりの NFS 接続数は、 nconnect マウント オプションを使用して指定された数に関係ありません。単一のクライアント VM を使用する場合、読み取りと書き込みのオペレーションは 1 つの Filestore クラスタ VM からのみ実行されます。

容量ベースのパフォーマンスの上限

容量ベースの上限は、カスタム パフォーマンスをサポートしていないサービスティア(ベーシック ティアなど)や、カスタム パフォーマンスを手動で無効にしたインスタンスに適用されます。

各 Filestore サービスティアは、キャッシュの使用、クライアント VM の数、クライアント VM の マシンタイプ、テストするワークロードなどの要因によって異なるパフォーマンス レベルを提供します。

次の表に、各サービスティアの最小容量と最大容量を設定した場合に実現できる最大パフォーマンスを示します。表の値はすべて推定上限です。

サービスティア 容量 読み取り IOPS 書き込み IOPS 読み取りスループット(MiBps) 書き込みスループット(MiBps) 単一クライアントの読み取りスループット(MiBps) 単一クライアントの書き込みスループット(MiBps)
Zonal 1 TiB 9,200 2,600 260 88 260 88
9.75、TiB 89,700 25,350 2,535 858 450 260
10 TiB 92,000 26,000 2,600 880 1,600 800
100 TiB 920,000 260,000 26,000 8,800 1,600 800
リージョン 1 TiB 12,000 4,000 120 100 120 100
9.75、TiB 117,000 39,000 1,170 975 450 260
10 TiB 92,000 26,000 2,600 880 1,600 800
100 TiB 920,000 260,000 26,000 8,800 1,600 800
Enterprise 1 TiB 12,000 4,000 120 100 120 100
10 TiB 120,000 40,000 1,200 1,000 450 260
基本 HDD 1 TiB ~ 10 TiB 600 1,000 100 100 100 100
10 TiB ~ 63.9 TiB 1,000 5,000 180 120 180 120
基本 SSD 2.5 TiB ~ 63.9 TiB 60,000 25,000 1,200 350 1,200 350

リソース全体のパフォーマンスを改善する Google Cloud

複数のリソースにわたるオペレーション(Google Cloud CLI を使用して Cloud Storage から Filestore インスタンスにデータをコピーすることなど)は時間がかかることがあります。 Google Cloud パフォーマンスの問題を軽減するには、次のことを試してください。

  • Cloud Storage バケット、クライアント VM、Filestore インスタンスをすべて同じリージョンに配置する。

    デュアルリージョンは、Cloud Storage に保存されているデータに対して最もパフォーマンスの高いオプションを提供します。このオプションを使用する場合は、デュアルリージョンに含まれる単一リージョンのいずれかに他のリソースを配置してください。たとえば、Cloud Storage データが us-central1,us-west1 にある場合は、クライアント VM と Filestore インスタンスを us-central1 に配置します。

  • 基準となるものとして、Persistent Disk(PD)がアタッチされた VM のパフォーマンスを確認し、Filestore インスタンスのパフォーマンスと比較する。

    • PD がアタッチされた VM のパフォーマンスが Filestore インスタンスと比較して同等または遅い場合、これは Filestore とは関係のないパフォーマンスのボトルネックが存在することを示している可能性があります。Filestore 以外のリソースのベースライン パフォーマンスを改善するには、並列複合アップロードに関連付けられた gcloud CLI プロパティを調整します。詳細については、ツールと API で並列複合アップロードを使用する方法をご覧ください。
    • Filestore インスタンスのパフォーマンスが
      PD がアタッチされた VM よりも大幅に低い場合は、オペレーションを複数の VM に分散して、Cloud Storage からの読み取りオペレーションのパフォーマンスを改善してみてください。

次のステップ