web-dev-qa-db-ja.com

Linuxでのソフトウェアraid10の読み取りパフォーマンスが低い

最近、新しいLinuxベースのファイルサーバーをセットアップしました。私が使用しているディストリビューションはUbuntu10.10です。次のように2つのソフトウェアRAIDデバイスを作成しました。

mc@vmr:~$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdf1[1] sdh1[3] sde1[0] sdg1[2]
  19530688 blocks [4/4] [UUUU]

md1 : active raid10 sdh3[3] sdf3[1] sde3[0] sdg3[2]
  1912461184 blocks 64K chunks 2 near-copies [4/4] [UUUU]

デバイス/ dev/md0(raid1)は「/」にマウントされ、/ dev/md1(raid10)は「/ home」にマウントされます。残念ながら、私のraid10のパフォーマンスは非常に満足のいくものではありません。各HDDのパフォーマンスは次のとおりです。

mc@vmr:~$ Sudo hdparm -t /dev/sdh3  
/dev/sdh3:
 Timing buffered disk reads:  410 MB in  3.00 seconds = 136.57 MB/sec

mc@vmr:~$ Sudo hdparm -t /dev/sdf3
/dev/sdf3:
 Timing buffered disk reads:  402 MB in  3.01 seconds = 133.60 MB/sec

mc@vmr:~$ Sudo hdparm -t /dev/sde3
/dev/sde3:
 Timing buffered disk reads:  418 MB in  3.01 seconds = 139.10 MB/sec

mc@vmr:~$ Sudo hdparm -t /dev/sdg3
/dev/sdg3:
 Timing buffered disk reads:  406 MB in  3.00 seconds = 135.32 MB/sec

当然、私は約260 MB /秒の読み取りパフォーマンスを期待していましたが、代わりに次のようになりました。

mc@vmr:~$ Sudo hdparm -t /dev/md1
/dev/md1:
 Timing buffered disk reads:  172 MB in  3.04 seconds =  56.64 MB/sec

まず、hdparmテスト方法が100%信頼されていないことを前提としていたため、実際の読み取りテストを実行しましたが、パフォーマンスはまだ期待どおりではありませんでした(random.binはraid10に配置されています)。

mc@vmr:~$ dd if=random.bin of=/dev/null bs=256k
38800+0 records in
38800+0 records out
10171187200 bytes (10 GB) copied, 96.3874 s, 106 MB/s

最後に、raid1の読み取りパフォーマンスが期待どおりであることを共有したいと思います。

mc@vmr:~$ Sudo hdparm -t /dev/md0
/dev/md0:
 Timing buffered disk reads:  412 MB in  3.01 seconds = 136.91 MB/sec

誰かがこのような問題に遭遇しましたか?手がかりはありますか?

2
mcDev

64Kチャンク

—小さすぎます。ほぼすべてのI/O操作。このようなストライプサイズのディスクが2つ含まれる可能性が非常に高いため、I/Oの無駄が多くなります。私の提案は少なくとも512KiBで、1〜2MiBかもしれません。

また、私のもの answer が便利だと思うかもしれません。

1
poige

Md1配列を再度作成しました:

leo@stellie:~$ cat /proc/mdstat 
Personalities : [raid1] [raid10] 
md1 : active raid10 sdc6[0] sdb6[2] sda6[1]
      32807040 blocks super 1.2 64K chunks 2 far-copies [3/3] [UUU] 
md0 : active raid1 sda1[0] sdb1[2] sdc1[1]
      248896 blocks [3/3] [UUU]

次の点に注意してください。1。メタデータバージョンが1.2にアップグレードされました。2。ニアコピーではなくファーコピー

leo@stellie:~$ Sudo hdparm -t /dev/md1
/dev/md1:
 Timing buffered disk reads: 372 MB in  3.02 seconds = 123.29 MB/sec

アレイがまだ使用されていないときに、さらにhdparmテストを行いました:-64Kチャンクとニアコピーのパフォーマンスが以前よりも向上しました(〜70MB /秒)-512Kチャンクの転送速度が低下しました(〜50MB /秒)-最大読み取りパフォーマンスファーコピーと64Kチャンクで到達しました

あなたが言ったように、私もiozoneでテストを実行する必要があります。

1
Léo

いくつかのオプションがあります

1.問題があります:

  • ハードドライブファームウェア
  • ファームウェアマザーボード
  • ファームウェアSATAコントローラー
  • ubuntuのバグ

2.いくつかの調整を試してください

  • hdparm -t --direct/dev/md0
  • blockdev --setra 16384
  • raid10でより大きなブロックを試してください(それが良いかどうかはわかりません)

とにかく、hdparmは実際には最高のベンチマークソフトウェアではありません-bonni ++、iozone、またはddを試してください

0
John