パフォーマンス

このページでは、Filestore に関して予想される平均パフォーマンスと推奨パフォーマンスの設定について説明します。また、Filestore インスタンスのパフォーマンスをテストする方法も示します。

予想パフォーマンス

Filestore の各サービス階層は、さまざまなレベルのパフォーマンスを実現します。基本階層では、10 TiB のインスタンス容量を超える一貫したパフォーマンスを実現します。エンタープライズ インスタンスおよび高スケール インスタンスでは、パフォーマンスは容量のスケールアップに比例して増減します。

インスタンスのパフォーマンスは、報告された数値とは異なる場合があります。これには、キャッシュの使用、クライアント VM のマシンタイプ、テスト対象のワークロードなどのさまざまな要因があります。

次の表は、サービス階層と構成された容量に基づく Filestore インスタンスの予想されるパフォーマンスを示しています。

パフォーマンス 容量(TiB 読み取り / 書き込み IOPS 読み取り / 書き込みスループット(MiB/秒)
BASIC_HDD 1–10 600/1,000 100/100
BASIC_HDD 10–63.9 1,000/5,000 180/120
BASIC_SSD 2.5–63.9 60,000/25,000 1,200/350
HIGH_SCALE_SSD 10 90,000/26,000 2,600/880
HIGH_SCALE_SSD 100 920,000/260,000 26,000/8,800
ENTERPRISE 1 12,000/4,000 120/100
ENTERPRISE 10 120,000/40,000 1,200/1,000

エンタープライズおよび高スケール SSD ティアのパフォーマンス スケーリング

エンタープライズと高スケール階層のインスタンスのパフォーマンスは、それぞれ 1 TiB と 2.5 TiB ステップで割り当て容量に比例してスケーリングされます。次の表に、2.5 TiB の容量ごとに得られたパフォーマンスを示します。

高スケール

仕様 最大持続 IOPS1 最大持続スループット 2(MiB/秒)
2.5TiB あたりの読み取り 23,000 650
2.5TiB あたりの書き込み 6,500 220

企業

仕様 最大持続 IOPS [^1] 最大持続スループット [^2](MiB/秒)
1TiB あたりの読み取り 12,000 120
1TiB あたりの書き込み 4,000 100

単一クライアントおよび少数のクライアントでは、最大の NFS パフォーマンスを達成するために、nconnect マウント オプションで TCP 接続の数を増やす必要があります。高スケール階層の場合は最大 7 個の接続を指定し、エンタープライズ階層の場合は最大 2 個の接続を指定することをおすすめします。一般に、ファイル共有の容量が大きく、接続しているクライアント VM が少ないほど、nconnect で追加の接続を指定することでパフォーマンスが向上します。

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

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

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

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

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

パフォーマンスのテスト

Linux を使用している場合は、fio ツールを使用して、基本階層インスタンスの読み取り / 書き込みスループットと IOPS のベンチマークを実施できます。 このセクションの例では、実行する必要が生じる可能性のある一般的なベンチマークを示しています。最大のパフォーマンスを実現するには、複数のクライアント VM インスタンスから fio を実行することが必要な場合があります。パフォーマンスのベンチマーク方法では、エンタープライズ インスタンスと高スケール階層インスタンスで正確な結果が得られません。

次の例は、最大書き込みスループットのベンチマークを実施します。

fio --ioengine=libaio --filesize=32G --ramp_time=2s \
--runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \
--group_reporting --directory=/mnt/nfs  \
--name=write --blocksize=1m --iodepth=64 --readwrite=write

次の例は、最大書き込み IOPS のベンチマークを実施します。

fio --ioengine=libaio --filesize=32G --ramp_time=2s \
--runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \
--group_reporting --directory=/mnt/nfs  \
--name=randwrite --blocksize=4k --iodepth=256 --readwrite=randwrite

次の例は、最大読み取りスループットのベンチマークを実施します。

fio --ioengine=libaio --filesize=32G --ramp_time=2s \
--runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \
--group_reporting --directory=/mnt/nfs  \
--name=read --blocksize=1m --iodepth=64 --readwrite=read

次の例は、最大読み取り IOPS のベンチマークを実施します。

fio --ioengine=libaio --filesize=32G --ramp_time=2s \
--runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \
--group_reporting --directory=/mnt/nfs  \
--name=randread --blocksize=4k --iodepth=256 --readwrite=randread

次のステップ


  1. 数値は 4 K 読み取り / 書き込み IO に基づいて測定されます。 

  2. 数値は 1M 読み取り / 書き込み IO に基づいて測定されます。