Debian Squeeze 中的 SW-RAID 5 非常慢

Debian Squeeze 中的 SW-RAID 5 非常慢

我不知道为什么,但我的突袭速度遇到了很大的问题。

我有 4 台 WD RE4 7200RPM 500GB。 RAID 5 的大小为 1000GB。 1 个 HDD 为备用。

问题就在这里:

Every 1,0s: cat /proc/mdstat                                                                                                                    Mon Dec 31 10:01:11 2012

Personalities : [raid1] [raid6] [raid5] [raid4]
md1 : active raid5 sdc2[0] sdb2[3](S) sdd2[2] sde2[1]
      974812160 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
      [=>...................]  check =  9.0% (44241152/487406080) finish=6696.5min speed=1102K/sec

md0 : active raid1 sdc1[0] sdb1[3](S) sdd1[2] sde1[1]
      975860 blocks super 1.2 [3/3] [UUU]

unused devices: <none>

我在凌晨 2:00 开始检查,我认为它可能已经完成了。事实并非如此。当它是新的时候(2个月前),检查raid只需要大约150 - 300分钟。

vmstat 1 shows:
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 2  1      0 168108 278152 6649192    0    0   385   705    0    1 47 13 33  7
 1  1      0 168092 278152 6649236    0    0     0  1564 24426 42090 28 11 46 16
 3  1      0 173424 278152 6649236    0    0     0  1204 23750 41592 30  7 48 15
 1  2      0 173416 278160 6649228    0    0    24   592 23131 41252 25  5 47 23
 2  1      0 173424 278160 6649260    0    0     0  2340 24750 42888 29  8 45 18
 1  1      0 172928 278176 6649244    0    0     0  1408 23818 41362 30  8 42 21
 1  0      0 172696 278176 6649304    0    0     0   471 23144 40932 25  7 58 10
 1  0      0 172488 278176 6649304    0    0     0   275 26299 45241 27 17 52  5
 1  2      0 172612 278184 6649304    0    0     0  1806 24572 41288 40  6 44  9
 5  2      0 172752 278200 6649328    0    0     0   780 23541 41308 28  6 33 33

Iostat 1 显示:

Linux 2.6.32-5-amd64 ()       31.12.2012      _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          47,02    0,34   12,94    6,95    0,00   32,74

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               7,68        17,48      3428,36  112980468 22156867512
sdb               0,00         0,00         0,00        748       2208
sdc              70,20      3506,35      1574,01 22660920204 10172547974
sdd              70,32      3528,74      1551,86 22805657128 10029430470
sde              71,11      3548,29      1538,53 22931965117 9943244782
md0               0,00         0,01         0,00      55936       5416
md1             356,51      3276,98      2594,09 21178557866 16765170392

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          24,88    0,00    6,47   18,41    0,00   50,25

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               0,00         0,00         0,00          0          0
sdb               0,00         0,00         0,00          0          0
sdc             164,00        80,00      2792,00         80       2792
sdd             116,00      1072,00      1248,00       1072       1248
sde             138,00         0,00      1864,00          0       1864
md0               0,00         0,00         0,00          0          0
md1             369,00         0,00      2952,00          0       2952

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          30,71    0,00    6,88   14,50    0,00   47,91

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               0,00         0,00         0,00          0          0
sdb               0,00         0,00         0,00          0          0
sdc             187,00      1040,00      1944,00       1040       1944
sdd             286,00        64,00      4616,00         64       4616
sde             231,00      1024,00      3056,00       1024       3056
md0               0,00         0,00         0,00          0          0
md1             601,00         0,00      4808,00          0       4808

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          22,03    0,00    6,68    3,71    0,00   67,57

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               0,00         0,00         0,00          0          0
sdb               0,00         0,00         0,00          0          0
sdc              30,00         8,00       716,00          8        716
sdd              10,00        40,00        44,00         40         44
sde              33,00         0,00       740,00          0        740
md0               0,00         0,00         0,00          0          0
md1              92,00         0,00       736,00          0        736

让我向您提出以下问题:

1)我的raid满负荷有问题吗? (总大小916GB,已用505G,免费365G)。 2)“512k chunk”有问题吗?

3) EXT3 是否最适合 SW RAID 5?

4)有没有可能,如何提高我的SW raid 5的速度?

5) 是否可以将下一个磁盘添加到我的 RAID 中,使其不成为备用磁盘,从而仅提高 raid 的速度?

6) SW Raid 5 消耗多少CPU TIME?在顶部它只向我显示: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 422 root 20 0 0 0 0 S 1 0.0 1743:38 md1_raid5 服务器正常运行时间为 74 天(自从将它们更改为旧服务器以来)。

热门节目:

top - 10:18:43 up 74 days, 19:21,  3 users,  load average: 2.33, 2.86, 2.94
Tasks: 147 total,   2 running, 145 sleeping,   0 stopped,   0 zombie
Cpu(s): 22.6%us,  6.9%sy,  0.0%ni, 52.9%id, 17.1%wa,  0.1%hi,  0.4%si,  0.0%st
Mem:  24743684k total, 24598984k used,   144700k free,   270604k buffers
Swap:        0k total,        0k used,        0k free,  6664872k cached

我认为,平均负载太高了。但为什么呢?我没有看到任何消耗太多 CPU 的东西。

Power TOP 显示如下:

Wakeups-from-idle per second : 6122,7   interval: 10,0s
Top causes for wakeups:
  74,0% (17652,4)               kvm : sys_timer_settime (posix_timer_fn)
  15,0% (3579,6)      <kernel IPI> : Rescheduling interrupts
   5,5% (1319,6)               kvm : apic_reg_write (kvm_timer_fn)
   1,8% (422,4)       <interrupt> : ahci
   1,0% (248,2)          events/0 : flush_to_ldisc (delayed_work_timer_fn)
   0,7% (178,6)       worldserver : __mod_timer (process_timeout)
   0,6% (153,4)       <interrupt> : eth0
   0,5% (118,4)       <interrupt> : pata_atiixp
   0,2% ( 43,6)               kvm : __kvm_migrate_timers (kvm_timer_fn)
   0,1% ( 20,0)         md1_raid5 : __mod_timer (blk_unplug_timeout)
   0,0% ( 11,2)        authserver : __mod_timer (process_timeout)

答案1

RAID 重新同步/检查是通过比正常 I/O 更低的 I/O 优先级完成的。如果该磁盘上有大量 I/O,它将以最低速度运行,您可以通过以下方式进行修改/sys/block/md1/md/sync_speed_min

答案2

对您其他问题的一些补充答案:

1)我的raid满负荷有问题吗? (总大小916GB,已用505G,免费365G)。

不,这是正确的。

首先,500 GB HDD 并不是真正的 500 GB 大,因为 HDD 制造商认为 1 GB 是 1,000,000,000 字节,而不是 1099511627776 (1024 * 1024 * 1024 * 1024) 字节。

因此,您的原始容量约为 931 GB。由于您的文件系统需要保存一些有关结构等的元信息,因此它本身需要一些空间,这导致 ext3 格式的分区上有约 916 GB 的可用空间。

由于每个文件至少占用一个块(大部分是 512 字节,但也可能是 4k 字节或其他字节),因此只有 10 字节的文件也会在磁盘上使用 512 字节。如果您有很多小文件,则所有文件的大小和磁盘上占用的空间之间会有很大差异。

2)“512k chunk”有问题吗?

不会。但这也取决于工作负载和使用情况。您可以在互联网上找到不同块大小的几种性能比较。

3) EXT3 是否最适合 SW RAID 5?

是的,以及任何其他标准文件系统。从我的角度来看,更好的问题是“RAID5 和/或 EXT3 适合我的使用/工作负载吗?”

例如:如果您只有一个只有几个用户的文件服务器,那么 RAID5 和 ext3 就可以了。如果您在 ext3 上有一个采用 RAID5 的大型数据库,那么最好采用 RAID10 和 XFS。

5) 是否可以将下一个磁盘添加到我的 RAID 中,使其不成为备用磁盘,从而仅提高 raid 的速度?

当然,您可以拥有 4 个磁盘的 RAID5。这可能会提高读取性能,但不会提高写入性能。

如果您需要更高的写入性能,则需要获得 RAID10。

这仅适用于顺序读/写,因为 Linux 上的 mdraid 在提供高 IOPS 方面非常糟糕。因此,如果您需要高随机 I/O 负载(例如数据库或虚拟化),您应该使用基于硬件的 RAID 或使用 ZFS(标准 Linux 内核中不提供)。

相关内容