6.5. SSD の最適化
btrfs ファイルシステムを使用すると SSD を最適化できます。これには 2 つの方法があります。
最初の方法は、指定された単一のデバイスの
/sys/block/ デバイスの /queue/rotational がゼロである場合に、mkfs.btrfs
が単一のデバイス
でメタデータの重複をオフにすることです。これは、コマンドラインで -m single を指定するのと同じです。これは、-m dup オプションを指定することで上書きし、メタデータを複製できます。SSD ファームウェアは両方のコピーを失う可能性があるため、複製は必要ありません。これはスペースを浪費し、パフォーマンスが犠牲になります。
2 つ目の方法は、SSD マウントオプションのグループ( ssd、nossd、および ssd_spread )を使用することです。
ssd オプションはいくつかのことを行います。
- より大きなメタデータのクラスターの割り当てを許可します。
- 可能な場合は、より順序立ててデータを割り当てます。
- 鍵とブロック順序に一致するように btree リーフの書き換えを無効にします。
- 複数のプロセスをバッチ処理せずにログフラグメントをコミットします。
注記
ssd マウントオプションは、ssd オプションのみを有効にします。nossd オプションを使用して無効にします。
一部の SSD は、ブロック番号を頻繁に再利用する場合に最高のパフォーマンスを発揮しますが、他の SSD は、クラスタリングが未使用スペースの大きなチャンクを厳密に割り当てる場合にはるかに優れたパフォーマンスを発揮します。デフォルトでは、mount -o ssd は、複数の空きブロックが混在している可能性のあるブロックのグループを検出します。mount -o ssd_spread コマンドにより、割り当てられたブロックが混在しないようにします。これにより、ローエンド SSD のパフォーマンスが向上します。
注記
ssd_spread オプションは、ssd オプションと ssd _spread オプションの両方を有効にします。nossd を使用して、両方のオプションを無効にします。
ssd オプションが指定されておらず、いずれのデバイスも回転していない場合、ssd_spread オプションは自動的に設定されません。
SSD ファームウェアとアプリケーションの負荷の組み合わせはそれぞれ異なるため、これらのオプションはすべて、特定のビルドでテストして、それらの使用によってパフォーマンスが向上または低下するかどうかを確認する必要があります。