Debian 中的 ZFS (raidz) i/o 性能不佳

Debian 中的 ZFS (raidz) i/o 性能不佳

我遇到的问题是在我的 Debian 机器(HP MicroServer N40L)上运行 ZFS,它是从 zfsonlinux.com 下载的源代码编译而成,但性能似乎很差。

该池由 3 个相同的 2TB 硬盘(Seagate、SATA、5900rpm、6GB/s)创建。系统在另一个 250GB(7200rpm、非 RAID)硬盘上运行。我用来创建 zpool 的命令是zpool create tank raidz hd1ID hd2ID hd3IDzpool status tank表示一切正常。在我产生怀疑之后,我使用 bonnie(版本 1.96)来测试性能bonnie -u root:root -x 5 -s 4096,下面是我得到的一些数字(最后一行是来自 250GB 系统驱动器的数字,这表明非 RAID 硬盘比我的 zpool 快得多)

rewrite  seeks  ran_create  putc_latency  rewrite_latency  seeks_latency
11275    228246 2249        3770          116ms            191ms
10556    229326 7133        5388          147ms            247ms
10989    227938 13337       13569         128ms            141ms
11025    227938 873         3679          117ms            224ms
10926    229491 3580        6186          119ms            231ms
64389    111633 29779       30298         47190us          51692us

我也这样做了,time dd if=/dev/zero of=foo bs=1048576 count=1024并得到了

1024+0 records in
1024+0 records out
1073741824 bytes (1.1GB) copied, 83.3947 s, 12.9 MB/s

real    1m23.397s
user    0m0.000s
sys     0m1.760s

系统驱动器上的相同命令是

1024+0 records in
1024+0 records out
1073741824 bytes (1.1GB) copied, 9.52386 s, 113 MB/s

real 0m9.752s
user 0m0.00s
sys  0m2.984s

看起来我的 zpool 运行非常慢。我在创建 zpool 时做错了什么吗?我该如何调整它以使其正常运行?

答案1

我怀疑您的硬盘报告的扇区为 512 字节,但实际上扇区为 4 K。众所周知,这会对性能产生非常负面的影响,尤其是在 RAID-Z 配置中。

ashift=12解决方法是在创建池时添加该选项。

一些细节这里

答案2

嗯,您的系统驱动器比您的组件驱动器更快,所以您不是在进行同类比较。

但这肯定比人们预期的要低得多——请记住,Linux 上的原生 ZFS 项目尚未成熟,并且未针对性能进行优化

测试时,ZFS 池中是否还有其他 IO 在进行?测试期间 CPU 是否饱和dd

相关内容