为什么 zfs 在 fs 内移动文件时性能会很差?

为什么 zfs 在 fs 内移动文件时性能会很差?

在我的 FreeNAS NAS(9.1.1 运行 zfs v28)上,我在同一个 raidz fs 中的两个目录之间移动文件时性能非常差。这是预料之中的吗?如果不是,我该如何查找故障?

在这种情况下,应用程序是 Beets(mp3 管理软件),在 NAS 本身的 jail 中运行,因此这不是 CIFS 性能或网络问题 - 数据不会离开服务器。软件所做的只是重命名到不同的目录,但性能就像复制所有数据一样。

系统没有承受任何特殊负载。实际上,我已经停止了服务器上正在运行的其他进程,以释放一些内存和 CPU,以防万一。

更新:这两个目录位于 jail 内的同一挂载点。池是 raidz1 中的 4 x 2TB SATA 驱动器。没有重复数据删除或压缩。

更新2:禁用 fs 上的 atime 也没有什么区别(我想我也可以尝试一下)。

更新 3:zfs/zpool 输出。

[root@Stillmatic2] ~# zpool status
  pool: jumbo1
 state: ONLINE
  scan: scrub repaired 0 in 95h19m with 0 errors on Wed Jul 16 23:20:06 2014
config:

        NAME        STATE     READ WRITE CKSUM
        jumbo1      ONLINE       0     0     0
          raidz1-0  ONLINE       0     0     0
            ada0    ONLINE       0     0     0
            ada1    ONLINE       0     0     0
            ada2    ONLINE       0     0     0
            ada3    ONLINE       0     0     0

errors: No known data errors

[root@Stillmatic2] ~# zfs list
NAME                                                         USED  AVAIL  REFER  MOUNTPOINT
jumbo1                                                      5.32T  21.4G  40.4K  /mnt/jumbo1
jumbo1/data                                                 76.0G  21.4G  76.0G  /mnt/jumbo1/data
jumbo1/howie                                                2.03G  21.4G  2.03G  /mnt/jumbo1/howie
jumbo1/jails                                                45.1G  21.4G   139M  /mnt/jumbo1/jails
jumbo1/jails/.warden-template-9.1-RELEASE-amd64              347M  21.4G   347M  /mnt/jumbo1/jails/.warden-template-9.1-RELEASE-amd64
jumbo1/jails/.warden-template-9.1-RELEASE-amd64-pluginjail   853M  21.4G   852M  /mnt/jumbo1/jails/.warden-template-9.1-RELEASE-amd64-pluginjail
jumbo1/jails/hj-tools                                       43.8G  21.4G  44.1G  /mnt/jumbo1/jails/hj-tools
jumbo1/movies                                               1.56T  21.4G  1.56T  /mnt/jumbo1/movies
jumbo1/music                                                1.45T  21.4G  1.45T  /mnt/jumbo1/music
jumbo1/tv                                                   2.19T  21.4G  2.19T  /mnt/jumbo1/tv

答案1

可用空间约为 6TB,其中 21GB => <1% 可用空间。ZFS 建议 RAIDZ 的可用空间为 20%,而对于任何合理的性能来说,至少 10% 是必需的。您需要释放一些空间或扩展阵列的大小。

侧节点:

  1. 如果你希望在进入之前检测到阵列故障,则需要每周对 SATA 驱动器进行清理可能的数据丢失领土。看起来距离上次清理已经过去一个月了。
  2. 你可能还在整数百分比由于工作方式的原因,重建时阵列发生故障的可能性较大。请参见什么算作‘大型’ raid 5 阵列?了解详情。

相关内容