如何诊断间歇性缓慢的 raid 数据传输速率?

如何诊断间歇性缓慢的 raid 数据传输速率?

我在 Centos 5.5 上设置了一个加密的 RAID6。当我将一个 10gb 的大文件从 RAID 传输到我的计算机时,它会在 4-5gb 左右暂停,然后在 9gb 再次暂停。数据传输速度从 25mb/秒下降到 < 1mb/秒,持续约 30-60 秒。

每隔几分钟,流式传输高清视频就会出现卡顿和/或冻结的情况。

传输通过 samba 进行。同样的事情也发生在 rsync 上(使用 rsync 守护进程),但传输速率略高。

有人能告诉我如何着手追踪这个问题吗?我不确定如何找出瓶颈在哪里。


背景信息:

  • 服务器:CPU 为 Intel(R) Core(TM)2 CPU 6300 @ 1.86GHz
  • 内存:4GB
  • 以太网:主板上为千兆位
  • SATA:板载 x8,一个控制器上有 6 个端口,另一个控制器上有 2 个端口

从 raid 传输数据时,一个核心的 CPU 使用率约为 45%。

我如何创建突袭:

突袭堆栈如下;

磁盘-->RAID-->dm-crypt-->LVM-->fs

我有 7 个 2TB 磁盘。每个都有一个“fd”(raid)分区(/dev/sdb -> /dev/sdh)注意 /dev/sda 是包含操作系统的 SSD

以下是我创建它的方法

创建 raid 设备

mdadm --create /dev/md0 --level=6 --raid-devices=7 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1

打开加密数组

cryptsetup --key-file /mnt/usbstick/img_0768.jpg luksOpen /dev/md0 md0encrypted

创建 LVM

pvcreate /dev/mapper/md0encrypted

创建卷组 - 使用 256M,允许大约 16.7TB。必须是 2 的幂

vgcreate -s 256M VolGroupRaid /dev/mapper/md0encrypted

创建卷。(从 vgdisplay -v 获得总 PE 37260)

lvcreate -l 37260 VolGroupRaid --name raidvol

使用以下方式格式化

mkfs.ext3 /dev/VolGroupRaid/raidvol

安装它

mount /dev/VolGroupRaid/raidvol /mnt/raid

系统信息

串行通信

00:00.0 Host bridge: Intel Corporation 82P965/G965 Memory Controller Hub (rev 02)
00:01.0 PCI bridge: Intel Corporation 82P965/G965 PCI Express Root Port (rev 02)
00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #4 (rev 02)
00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 (rev 02)
00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 02)
00:1c.4 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 5 (rev 02)
00:1c.5 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 6 (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev f2)
00:1f.0 ISA bridge: Intel Corporation 82801HB/HR (ICH8/R) LPC Interface Controller (rev 02)
00:1f.2 SATA controller: Intel Corporation 82801HR/HO/HH (ICH8R/DO/DH) 6 port SATA AHCI Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 02)
01:00.0 VGA compatible controller: nVidia Corporation G84 [GeForce 8600 GT] (rev a1)
03:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8053 PCI-E Gigabit Ethernet Controller (rev 22)
04:00.0 SATA controller: JMicron Technology Corp. JMB362/JMB363 Serial ATA Controller (rev 02)
04:00.1 IDE interface: JMicron Technology Corp. JMB362/JMB363 Serial ATA Controller (rev 02)

消息 | grep -i 袭击

device-mapper: dm-raid45: initialized v0.2594l
md: Autodetecting RAID arrays.
raid5: automatically using best checksumming function: generic_sse
raid5: using function: generic_sse (6816.000 MB/sec)
raid6: int64x1   1558 MB/s
raid6: int64x2   1937 MB/s
raid6: int64x4   1765 MB/s
raid6: int64x8   1468 MB/s
raid6: sse2x1    3308 MB/s
raid6: sse2x2    4863 MB/s
raid6: sse2x4    5582 MB/s
raid6: using algorithm sse2x4 (5582 MB/s)
md: raid6 personality registered for level 6
md: raid5 personality registered for level 5
md: raid4 personality registered for level 4
raid5: device sdh1 operational as raid disk 6
raid5: device sdg1 operational as raid disk 5
raid5: device sdf1 operational as raid disk 4
raid5: device sde1 operational as raid disk 3
raid5: device sdd1 operational as raid disk 2
raid5: device sdc1 operational as raid disk 1
raid5: device sdb1 operational as raid disk 0
raid5: allocated 7412kB for md0
raid5: raid level 6 set md0 active with 7 out of 7 devices, algorithm 2
RAID5 conf printout:

猫/proc/mdstat

Personalities : [raid6] [raid5] [raid4] 
md0 : active raid6 sdh1[6] sdg1[5] sdf1[4] sde1[3] sdd1[2] sdc1[1] sdb1[0]
      9767559680 blocks level 6, 64k chunk, algorithm 2 [7/7] [UUUUUUU]

unused devices: <none>

答案1

诊断的方法是移除/替换组件。您的完整设置是:

 centos(disk-->RAID-->dm-crypt-->LVM-->fs)-->network->mycomputer

尝试不同的目的地:

 centos(disk-->RAID-->dm-crypt-->LVM-->fs)-->network->anothercomputer

消除网络:

 centos(disk-->RAID-->dm-crypt-->LVM-->fs)-->centos

消除所有堆栈以查看是否是网络:

 centos(disk(one disk)-->fs)-->network->mycomputer

如果不仅仅是网络,则开始添加组件:

 centos(disk-->RAID-->fs)-->network->mycomputer
 centos(disk-->RAID-->LVM-->fs)-->network->mycomputer

这些就是我能想到的所有组合。

答案2

即使在最佳情况下的传输速率似乎也很差,从 7 个驱动器 RAID 6 读取大文件应该能够轻松饱和 GigE 链路,因此即使有 SAMBA 开销,您也应该看到比 25Meg/秒好得多的速度。

加密开销不应该成为阻碍你前进的一般原则,加密\解密(使用 AES)100Meg/秒甚至更高完全在现代 CPU 的单核能力范围内,然而这条关于 dm-crypt 的消息表明这可能是由您的设置触发的瓶颈,并且它是一个相对较新的问题,所以我怀疑它仍然是一个问题。

当您说您正在传输到您的计算机时 - 那里的规格是什么 - 什么操作系统,多少 RAM 以及您正在写入的驱动器子系统的速度有多快,即它能否跟上 25Meg/秒的速度?

相关内容