2 个驱动器,慢速软件 RAID1(md)

2 个驱动器,慢速软件 RAID1(md)

我从 hetzner.de (EQ4) 获得了一个服务器,带有 2* SAMSUNG HD753LJ 硬盘(750G 32MB 缓存)。

操作系统是 CentOS 5 (x86_64)。驱动器组合成两个 RAID1 分区:

  1. /dev/md0 大小为 512MB,且仅包含 /boot 分区
  2. /dev/md1 大小超过 700GB,是一个承载其他分区的大型 LVM

现在,我已经运行了一些基准测试,似乎即使是完全相同的驱动器,它们的速度也略有不同。

# hdparm -tT /dev/sda

/dev/sda:  Timing cached reads:   25612 MB in  1.99 seconds = 12860.70 MB/sec  Timing buffered disk reads:  352 MB in  3.01 seconds = 116.80 MB/sec
# hdparm -tT /dev/sdb

/dev/sdb:  Timing cached reads:   25524 MB in  1.99 seconds = 12815.99 MB/sec  Timing buffered disk reads:  342 MB in  3.01 seconds = 113.64 MB/sec

另外,当我运行 pgbench 等对 IO 压力很大的程序时,我可以从 iostat 输出中看到以下内容:

Device:         rrqm/s   wrqm/s   r/s   w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00   231.40  0.00 298.00     0.00  9683.20    32.49     0.17    0.58   0.34  10.24
sda1              0.00     0.00  0.00   0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sda2              0.00   231.40  0.00 298.00     0.00  9683.20    32.49     0.17    0.58   0.34  10.24
sdb               0.00   231.40  0.00 301.80     0.00  9740.80    32.28    14.19   51.17   3.10  93.68
sdb1              0.00     0.00  0.00   0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdb2              0.00   231.40  0.00 301.80     0.00  9740.80    32.28    14.19   51.17   3.10  93.68
md1               0.00     0.00  0.00 529.60     0.00  9692.80    18.30     0.00    0.00   0.00   0.00
md0               0.00     0.00  0.00   0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-0              0.00     0.00  0.00   0.60     0.00     4.80     8.00     0.00    0.00   0.00   0.00
dm-1              0.00     0.00  0.00 529.00     0.00  9688.00    18.31    24.51   49.91   1.81  95.92

Device:         rrqm/s   wrqm/s   r/s   w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00   152.40  0.00 330.60     0.00  5176.00    15.66     0.19    0.57   0.19   6.24
sda1              0.00     0.00  0.00   0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sda2              0.00   152.40  0.00 330.60     0.00  5176.00    15.66     0.19    0.57   0.19   6.24
sdb               0.00   152.40  0.00 326.20     0.00  5118.40    15.69    19.96   55.36   3.01  98.16
sdb1              0.00     0.00  0.00   0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdb2              0.00   152.40  0.00 326.20     0.00  5118.40    15.69    19.96   55.36   3.01  98.16
md1               0.00     0.00  0.00 482.80     0.00  5166.40    10.70     0.00    0.00   0.00   0.00
md0               0.00     0.00  0.00   0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-0              0.00     0.00  0.00   0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-1              0.00     0.00  0.00 482.80     0.00  5166.40    10.70    30.19   56.92   2.05  99.04

Device:         rrqm/s   wrqm/s   r/s   w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00   181.64  0.00 324.55     0.00  5445.11    16.78     0.15    0.45   0.21   6.87
sda1              0.00     0.00  0.00   0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sda2              0.00   181.64  0.00 324.55     0.00  5445.11    16.78     0.15    0.45   0.21   6.87
sdb               0.00   181.84  0.00 328.54     0.00  5493.01    16.72    18.34   61.57   3.01  99.00
sdb1              0.00     0.00  0.00   0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdb2              0.00   181.84  0.00 328.54     0.00  5493.01    16.72    18.34   61.57   3.01  99.00
md1               0.00     0.00  0.00 506.39     0.00  5477.05    10.82     0.00    0.00   0.00   0.00
md0               0.00     0.00  0.00   0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-0              0.00     0.00  0.00   0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-1              0.00     0.00  0.00 506.39     0.00  5477.05    10.82    28.77   62.15   1.96  99.00

这完全把我搞糊涂了。为什么两个规格完全相同的驱动器的写入速度会有如此大的差异(见 util%)?我以前并没有真正关注过这些速度,所以也许这是正常的——如果有人能证实的话,我将不胜感激。

否则,如果有人再次看到这种行为或知道是什么导致了这种行为,我将非常感激答案。

我还要补充一点,“smartctl -a”和“hdparm -I”的输出完全相同,并不表示有任何硬件问题。较慢的驱动器已经更换了两次(换成了新的)。我还要求更换有位置的驱动器,然后 sda 变慢了,sdb 变快了(所以较慢的那个是同一个驱动器)。SATA 电缆已经更换了两次。

答案1

您能尝试一下bonnie++基准测试工具吗?您应该使用两倍大小的内存来运行它(例如 1GB):

bonnie++ -s $((2*1024))

您的问题描述让我认为是控制器无法轻松处理软件 RAID1 所做的并行写入。在以下情况下使用上述命令。要检查此假设是否正确,请执行以下操作:

1) 为每个硬盘单独进行基准测试。假设结果将相似。

2) 对 RAID1 进行基准测试。

3) 在不同的磁盘上同时进行基准测试。假设它应该更像 2) 而不是 1)。

祝你好运,
若昂·米格尔·内维斯

答案2

我同意你发现磁盘之间存在性能差异:只需查看队列大小的差异即可。但是,我们还不知道应该归咎于磁盘本身还是堆栈上层的东西。一些实验:

  1. 制作一个 md3,将 sdb 的分区作为镜像的第一个元素,将 sda 的分区作为第二个元素:查看性能是否遵循磁盘或软件 RAID。(这会让我感到惊讶,但在进行需要(呃)物理访问的第二个实验之前,这可能是值得做的。)

  2. 物理交换与 sda 和 sdb 的连接。如果现在性能发生变化,则应归咎于磁盘控制器。

答案3

我认为您的数据是正常的,它们是不同的,但只有很少的差异。我在许多其他相同的驱动器上看到过这种类型的值。

安德里亚

答案4

我会怀疑 raid 是这次观察的一部分。驱动器似乎显示几乎相同的 w/s 和 wsec/s。由于 md raid 将写入复制到连接到同一控制器的两个驱动器,因此数据可能仅通过总线传输一次,因此一个驱动器的 CPU 利用率可能达到顶峰,而另一个驱动器仅从控制器传输已经存在的块。您是否尝试过在没有 md raid 的情况下重现此行为?

相关内容