
私たちのサーバーには次の設定があります。
- Ubuntu 14.04(以前12.04)
- 10TB RAID-6システム
- LVM(1VG、2LV)
- ext4パーティション(~2TB)
- Btrfsパーティション(~8TB)
先月の再起動後、システムは非常に遅くなりました。まず、これはRAIDが再同期しているためだと思いました(1つのドライブが追加されず、再びアクティブになりませんでした)。しかし、最終的に完了した後でも(12〜13日)、Btrfsにアクセスする速度は依然として著しく遅かった。 ext4アクセスは大丈夫そうです。
この機能を設定した(今年の夏に去った)、システム管理者はすでにBtrfsマウントでautodefrag、noatimeを使用しています。
Btrfsを再び速くするために何ができますか?
答え1
コメントできません。良い答えでなければ申し訳ありません。ドライブを確認する必要があります。 10Tbの場合、12日のrsync時間は長すぎると思います。 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よりも多くのディスクアクセスを必要とし、アクセス速度の違いを説明できます。
答え2
私は3つのレベルのディスクI / O間接参照を積み上げましたが、そのパフォーマンスがなぜそれほど低いのか知りたいですか?
コンピュータサイエンスには、次のような古いことわざがあります。デビッド・ウィーラー:
コンピュータサイエンスのすべての問題は、別の間接層を介して解決することができます。
これは本当ではありません。この方法で解決できない問題が1つあります。システムが遅すぎるということです。 (とにかく、より多くのハードウェアを追加する必要があります。この場合は、より多くのスピンドル、クラスタ、ロードバランシングなどを追加する必要があります。)
BTRFSLVM機能が含まれていますが、すでに積み重ねています。Linux LVM2 レイヤーそして入れてそれハードウェアRAID-6システムの上。ファイルシステム間接レイヤーを1つ以上追加できるように崩壊する抽象化ヒープで仮想マシンをホストする以外に何をしますか?
あなたがアドバイスを求めたので、私のアドバイスは次のとおりです。壊れるこれはレイヤーの一部です。
私の場合は、ハードウェアディスクサブシステムを設定します。JBODその上にBtrfsを直接配置します。
もっと広く言えば、Btrfsは次のことを期待してはいけませんext[234]
。リンゴとリンゴを比較するのではありません。 Btrfs はより高いレベルのデータ整合性を提供するので、自然にゆっくりと実行されます。タンスタサッカークラブ。