服务器配置软件 Raid 读取缓慢

服务器配置软件 Raid 读取缓慢

我有 6 个 WD Caviar Black 1.5 TB,位于软件 RAID 10 / 1 / 0(Centos 6.2 / mdadm)中

cat /proc/mdstat
Personalities : [raid10] [raid0] [raid1]
md0 : active raid1 sdf2[5] sda2[0] sdb2[1] sdd2[3] sdc2[2] sde2[4]
      1023988 blocks super 1.0 [6/6] [UUUUUU]

md126 : active raid0 sde1[4] sda1[0] sdd1[3] sdb1[1] sdc1[2] sdf1[5]
      122873856 blocks super 1.2 64k chunks

md127 : active raid10 sde3[4] sda3[0] sdd3[3] sdb3[1] sdc3[2] sdf3[5]
      4330895808 blocks super 1.2 64K chunks 2 near-copies [6/6] [UUUUUU]

信息:

md0 = /boot (size 1GB) (Raid 1)
md126 = swap (size 125 GB) (Raid 0)
md127 = / (size 4,1 TB) (Raid 10 Layout : near=2)

当我对 Raid 0(6 个磁盘)进行基准测试时

hdparm -t /dev/md126 
/dev/md126:
 Timing buffered disk reads:  1994 MB in  3.00 seconds = 664.59 MB/sec

当我对 Raid 1 进行基准测试时(2 个磁盘,其余为备用)

/dev/md0:
 Timing buffered disk reads:  384 MB in  3.00 seconds = 127.96 MB/sec

当我对 Raid 10 (6 个磁盘) 进行基准测试时

hdparm -t /dev/md127
/dev/md127:
 Timing buffered disk reads:  1064 MB in  3.00 seconds = 354.60 MB/sec

我不能 100% 确定问题是否出在 raid 10 位于 sd[af] 上3 块大小只有 64kb,因为我只将此服务器用于 MYSQL(Mysql 数据库将非常大,因为我将它放在这些大硬盘上,我很快就会需要所有的 TB)

另一个问题:关于服务器配置,我打算买一台新服务器

Quadcore
1TB HDD
60GB SSD
8-16GB Ram

现在我正在考虑将其放在 1TB(操作系统 / 数据)和 SSD(MYSQL / SWAP)上

那样会好吗,我只需要性能,我有足够的备份。(我不打算使用 SWAP,但如果要用的话,我想我会把它放在 SSD 上,因为它比 HDD 上更快)

感谢帮助。

答案1

首先,hdparm它不是一个真正的基准测试工具,它不够严格,无法展示真正的性能。更好的工具是iozoneiometer

其次,您的结果可以用一个观察结果来解释。

  1. 磁盘数量很重要。

考虑一下:

  • 您的 R0 测试有 6 个磁盘参与读取。
  • 您的 R1 测试有 1 个磁盘参与读取。
  • 您的 R10 测试有 3 个磁盘参与读取。

鉴于此,您的结果非常清晰合理。

  • 6 个磁盘 = 664 MB/s(或每个驱动器 110.7 MB/s)
  • 1 个磁盘 = 128 MB/s(每个驱动器 128 MB/s)
  • 3 个磁盘 = 355 MB/s(或每个驱动器 111.7 MB/s)

那里是线性比例。它还很好地表明“使用 RAID1,读取从镜像的两个集合执行”对于 mdraid 来说实际上并不正确。或者至少不是因为它们是使用 HDPARM 执行的,这通常是一次长顺序读取,其中预取获得最大效率,而转到另一个磁盘不会提高性能。

相关内容