在FreeBSD ZFS上读写速度慢

我的家庭存储服务器,目前由6个3 TB希捷硬盘,12 GB DDR3内存和一个Core i3 540组成,在读取或写入我设置的raidz2时,性能非常差。

使用/usr/bin/time -h dd if=/dev/zero of=sometestfile bs=1024 count=10

 10240 bytes transferred in 0.000221 secs (46331902 bytes/sec) 

反过来说:

 10240 bytes transferred in 0.000107 secs (95656287 bytes/sec) 

这相当于46 MB / s的写入速度和95 MB / s的读取速度。 这似乎有点慢。 或者这是完全正常的?

谢谢

Tobias Timpe

使用上面显示的命令,您不在testing磁盘写入性能。 您正在testing各种各样的因素,但主要是控制器和磁盘延迟。 要testing磁盘读取性能,您需要跳过这些环节以排除testing中的磁盘caching,这对于ZFS来说并不重要,因为这意味着禁用ARCcaching。 testing写入性能要容易得多:写入更大的文件,最好是超出系统内置RAM的大小。

我在我家ZFS文件服务器(带有镜像WDC WD80的Core i3-4130T)上运行这个命令:

 # /usr/bin/time -h dd if=/dev/zero of=sometestfile bs=1024 count=10000000 10240000000 bytes transferred in 55 secs (186900359 bytes/sec) 

这不是很好,但这是对实际写入性能的更好testing。 一个有趣的结果是,我达到了187MB / s,我的磁盘额定性能是178MB / s。 这有点奇怪的B / C典型的基准是额定性能的一小部分。 超过它可以通过ZFS的磁盘压缩来解释。

我的磁盘位于ZFS镜像中(2倍的读取性能比存储效率更有用),但假设您的磁盘也是5400 RPM,则应该具有可比较的写入性能。

要明白为什么即使使用dd更大的计数是不是一个很好的testing,请检查:

 # /usr/bin/time -h dd if=/dev/zero of=sometestfile bs=1M count=1000000 1048576000000 bytes transferred in 223.56 secs (4690377542 bytes/sec) 

只需将块大小增加到1M,我的磁盘性能现在就不在图表中了。 直到你意识到读取/ dev / zero意味着数据源没有熵并且是高度可压缩的。 dd不是testing磁盘性能的最佳工具。

在FreeBSD ports树里还有其他的工具(我以前用过bonnie&iozone)可以告诉你更多关于磁盘性能的信息。 如果你真的好奇,那就看看他们。 否则,家庭文件服务器的更好的性能testing就是在两个磁盘之间复制DVD或蓝光的内容以及复制时间。