我有 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
它不是一个真正的基准测试工具,它不够严格,无法展示真正的性能。更好的工具是iozone
或iometer
。
其次,您的结果可以用一个观察结果来解释。
- 磁盘数量很重要。
考虑一下:
- 您的 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 执行的,这通常是一次长顺序读取,其中预取获得最大效率,而转到另一个磁盘不会提高性能。