ZFS磨砂负荷平均值是非常高的

我在这里有一个相对较新的盒子,在18个磁盘arrays上运行带有ZFS-on-Linux的Ubuntu。 前几次我做了zpool scrub ,看起来好像一切都很好,但是最后几次我尝试过,它完全破坏了系统 – 当我可以做任何事情时,它报告一个平均负载20-50,大部分时间它只是没有反应。

这不是预期的行为吗? 有没有一些configuration可以改变,以减less这个问题?

更新:

  • 硬件configuration基本上是http://www.45drives.com/products/storage/s45-lite.php
  • 18个6TB磁盘通过HighPoint R750 HBA连接。
  • Ubuntu 14.04 LTS,Linux 3.19内核。
  • 游泳池目前大约占50%。
  • 没有重复数据删除。
  • [更新2]:磁盘排列在2个RAIDZ(单奇偶校验)vdevs中,每个9个磁盘。

在ZFS-on-Linux邮件列表上结束了问题,最终发现我的问题是ZFS ARC使用了太多的系统RAM(或者更具体地说,没有足够的空闲空间)。 这导致了其他内核任务和ZFS之间的内存争用,导致系统(非ZFS)磁盘上有很多I / O,并且事情放慢了抓取速度。 有趣的是,系统没有报告任何交换使用情况,所有的分页正在从磁盘(大概是库等)读取静态页面,这就是为什么我平常的“这是交换,所以它会慢”警报没有去closures。

我减less了ARCcaching的大小,以免留下3-4GB的RAM,现在情况变得更好了!

你必须调整你的ZFS安装。 ZoL上的默认值并不适合您的使用情况。

请提供您的硬件设置和ZFSconfiguration的详细信息。

  • 你的游泳池是否超过了80%?
  • 您是否启用了重复数据删除function?
  • 你使用什么types的磁盘和控制器?

通常,您可以在zfs.conf模块configuration文件中修改以下内容。

 options zfs zfs_vdev_scrub_min_active=48 options zfs zfs_vdev_scrub_max_active=128