6.5. SSD の最適化

btrfs ファイルシステムを使用して SSD を最適化することができます。これは 2 つの方法で実行することができます。
最初の方法として、/sys/block/device/queue/rotational が単一の指定されたデバイスに対してゼロである場合に mkfs.btrfs は単一デバイスでのメタデータの複製をオフにします。これは、コマンドラインで -m single を指定するのと同等の動作になります。-m dup オプションを指定すると、この設定はオーバーライドされ、メタデータの複製が強制実行されます。ただし、SSD ファームウェアが両方のコピーを失う可能性があるため、複製は不要です。スペースの無駄やパフォーマンスコストを考慮してもそのように言えます。
2 つ目として、SSD マウントオプションの ssdnossd、および ssd_spread などのグループを使用する方法があります。
ssd オプションは、いくつかのことを実行します。
  • 大規模なメタデータクラスター割り当てを可能にします。
  • 可能な場合は、データをより順次に割り当てます。
  • キーとブロックの順番を一致させるため btree リーフの再書き込みを無効にします。
  • 複数プロセスをバッチ処理を行なわずに、ログのフラグメントをコミットします。

注記

ssd マウントオプションは ssd オプションのみを有効にします。これを無効にするには、nossd オプションを使用します。
一部の SSD のパフォーマンスは、ブロック番号を再利用する場合に最もよくなることが多くあります。また、クラスター化によって未使用領域の大きなチャンクが厳密に割り当てられるとパフォーマンスが大幅に向上する場合もあります。デフォルトでは、mount -o ssd は、割り当てられたブロックが混在している可能性のある複数の空きブロックがある場合に、ブロックの複数のグループを検索します。コマンド mount -o ssd_spread は、割り当て済みのブロックが混在していないことを確認します。これにより、ローエンドの SSD のパフォーマンスが強化されます。

注記

ssd_spread オプションは、ssdssd_spread オプションの両方を有効にします。これらのどちらのオプションも無効にするには、nossd を使用します。
ssd_spread オプションは、いずれの ssd オプションも指定されず、デバイスのいずれかが非回転デバイスの場合は、自動的に設定されません。
これらのオプションは、これらを使用することによりパフォーマンスが改善されるか、または低下するかを調べるために、ご使用の特定のビルドですべてテストする必要があります。ビルドにより、SSD ファームウェアとアプリケーション負荷の組み合わせはそれぞれ異なるためです。