我最近build立了新的基于Linux的文件服务器。 我使用的是Ubuntu 10.10。 我创build了两个软件RAID设备,如下所示:
mc@vmr:~$ cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sdf1[1] sdh1[3] sde1[0] sdg1[2] 19530688 blocks [4/4] [UUUU] md1 : active raid10 sdh3[3] sdf3[1] sde3[0] sdg3[2] 1912461184 blocks 64K chunks 2 near-copies [4/4] [UUUU]
/ dev / md0(raid1)安装在“/”上,/ dev / md1(raid10)安装在“/ home”上。 不幸的是,我的raid10的performance令人深感不满。 以下是每个硬盘的性能:
mc@vmr:~$ sudo hdparm -t /dev/sdh3 /dev/sdh3: Timing buffered disk reads: 410 MB in 3.00 seconds = 136.57 MB/sec mc@vmr:~$ sudo hdparm -t /dev/sdf3 /dev/sdf3: Timing buffered disk reads: 402 MB in 3.01 seconds = 133.60 MB/sec mc@vmr:~$ sudo hdparm -t /dev/sde3 /dev/sde3: Timing buffered disk reads: 418 MB in 3.01 seconds = 139.10 MB/sec mc@vmr:~$ sudo hdparm -t /dev/sdg3 /dev/sdg3: Timing buffered disk reads: 406 MB in 3.00 seconds = 135.32 MB/sec
所以很自然,我期待读取性能大约260 MB /秒,但我却得到了这样的结果:
mc@vmr:~$ sudo hdparm -t /dev/md1 /dev/md1: Timing buffered disk reads: 172 MB in 3.04 seconds = 56.64 MB/sec
首先,我假设hdparmtesting方法不是100%可信的,所以我做了一些真实世界的读取testing,性能仍然不如预期(random.bin放在raid10上):
mc@vmr:~$ dd if=random.bin of=/dev/null bs=256k 38800+0 records in 38800+0 records out 10171187200 bytes (10 GB) copied, 96.3874 s, 106 MB/s
最后我想分享一下raid1的读取性能和预期的一样:
mc@vmr:~$ sudo hdparm -t /dev/md0 /dev/md0: Timing buffered disk reads: 412 MB in 3.01 seconds = 136.91 MB/sec
有没有人遇到这样的问题? 任何线索?
64K块
– 方式太小。 几乎每个I / O操作。 涉及2个带有这种条带大小的磁盘的可能性很大,这意味着更多的I / O浪费。 我的build议是至less512 KiB,可能是1-2 MiB。
另外,你可能会发现我的答案很有用。
我刚刚创build了我的md1数组:
leo@stellie:~$ cat /proc/mdstat Personalities : [raid1] [raid10] md1 : active raid10 sdc6[0] sdb6[2] sda6[1] 32807040 blocks super 1.2 64K chunks 2 far-copies [3/3] [UUU] md0 : active raid1 sda1[0] sdb1[2] sdc1[1] 248896 blocks [3/3] [UUU]
请注意:1.元数据版本升级到1.2 2.远程副本,而不是近似副本
leo@stellie:~$ sudo hdparm -t /dev/md1 /dev/md1: Timing buffered disk reads: 372 MB in 3.02 seconds = 123.29 MB/sec
我还做了更多的hdparmtesting,而arrays还没有被使用: – 64K块和近似拷贝比以前performance更好(〜70MB /秒) – 512K块传输速率更低(〜50MB /秒) – 最大读取性能已经达到远远拷贝和64K大块
正如你所说,我也需要用iozone进行testing。
有几个选项
1.有问题:
2.调整一些东西
反正hdparm不是真正的最好的基准软件 – 尝试bonni ++,iozone或dd