サーバーに次の設定があります。
先月の再起動後、システムは低速でした。最初に、RAIDが再同期しているためだと考えました(1つのドライブが追加されず、再アクティブ化されました)。しかし、その後最終的に終了した後(12〜13日)、Btrfsへのアクセスは依然として著しく遅いです。 ext4アクセスは正常のようです。
これを設定した(そしてこの夏を去った)システム管理者は、Btrfsマウントですでにautodefrag、noatimeを使用していました。
Btrfsを再び高速化するにはどうすればよいですか?
コメントできません。これが答えとして良くない場合は申し訳ありません。ドライブを確認する必要があります。 10Tbのrsync時間の12日は長すぎると思いますが、12〜24時間のようにする必要があります。 smartctlを使用してさまざまなドライブを調べ、エラーが多いかどうかを確認します。
for i in a b c d e f g h i j k l; do echo $i ; smartctl -x /dev/sd$i | grep occurred | head -1 ; done
これが原因で、RAIDの動作が遅くなるのを見てきました。また、IIRC Btrfsは、ディレクトリ検索のためにext4よりも多くのディスクアクセスを必要とします。これは、アクセス速度の違いを説明している可能性があります。
3層のディスクI/O間接参照を積み上げたばかりですが、なぜパフォーマンスが悪いのか疑問に思っていますか?
コンピュータサイエンスには、 David Wheeler に起因する古いことわざがあります。
コンピュータサイエンスの問題は、別の間接層で解決できます。
それは真実ではない。その方法で解決できない問題が1つあります。それは、システムが遅すぎることです。 (とにかくハードウェアを追加せずにはいられません。この場合はスピンドルを増やしたり、クラスタリングや負荷分散などを行ったりします)
Btrfs にはLVM機能が含まれていますが、それを LinuxのLVM2レイヤー の上に積み重ねてthatハードウェアRAID-6システム上。ファイルシステムの間接参照の別のレイヤーまたは2つを追加できるように、この抽象化のぐらつきの山で仮想マシンをホストして、他に何をしましたか?
あなたはアドバイスを求めたので、ここに私のものがあります: snap それらのレイヤーのいくつか。
私の場合は、ハードウェアディスクサブシステムを [〜#〜] jbod [〜#〜] に構成し、その上にBtrfsを直接配置します。
もっと広く言えば、Btrfsがext[234]
と同じパフォーマンスを達成することを期待すべきではありません。アップルとアップルを比較しているのではありません。 Btrfsはより高いレベルのデータ整合性を購入するため、当然、実行速度は少し遅くなります。 [〜#〜] tanstaafl [〜#〜] 。