我在这里有一个相对较新的盒子,在18个磁盘arrays上运行带有ZFS-on-Linux的Ubuntu。 前几次我做了zpool scrub ,看起来好像一切都很好,但是最后几次我尝试过,它完全破坏了系统 – 当我可以做任何事情时,它报告一个平均负载20-50,大部分时间它只是没有反应。
这不是预期的行为吗? 有没有一些configuration可以改变,以减less这个问题?
更新:
在ZFS-on-Linux邮件列表上结束了问题,最终发现我的问题是ZFS ARC使用了太多的系统RAM(或者更具体地说,没有足够的空闲空间)。 这导致了其他内核任务和ZFS之间的内存争用,导致系统(非ZFS)磁盘上有很多I / O,并且事情放慢了抓取速度。 有趣的是,系统没有报告任何交换使用情况,所有的分页正在从磁盘(大概是库等)读取静态页面,这就是为什么我平常的“这是交换,所以它会慢”警报没有去closures。
我减less了ARCcaching的大小,以免留下3-4GB的RAM,现在情况变得更好了!
你必须调整你的ZFS安装。 ZoL上的默认值并不适合您的使用情况。
请提供您的硬件设置和ZFSconfiguration的详细信息。
通常,您可以在zfs.conf模块configuration文件中修改以下内容。
options zfs zfs_vdev_scrub_min_active=48 options zfs zfs_vdev_scrub_max_active=128