On Jun 14, 2010, at 2:12 PM, Roy Sigurd Karlsbakk wrote: > Hi all > > It seems zfs scrub is taking a big bit out of I/O when running. During a > scrub, sync I/O, such as NFS and iSCSI is mostly useless. Attaching an SLOG > and some L2ARC helps this, but still, the problem remains in that the scrub > is given full priority.
Scrub always runs at the lowest priority. However, priority scheduling only works before the I/Os enter the disk queue. If you are running Solaris 10 or older releases with HDD JBODs, then the default zfs_vdev_max_pending is 35. This means that your slow disk will have 35 I/Os queued to it before priority scheduling makes any difference. Since it is a slow disk, that could mean 250 to 1500 ms before the high priority I/O reaches the disk. > Is this problem known to the developers? Will it be addressed? In later OpenSolaris releases, the zfs_vdev_max_pending defaults to 10 which helps. You can tune it lower as described in the Evil Tuning Guide. Also, as Robert pointed out, CR 6494473 offers a more resource management friendly way to limit scrub traffic (b143). Everyone can buy George a beer for implementing this change :-) Of course, this could mean that on a busy system a scrub that formerly took a week might now take a month. And the fix does not directly address the tuning of the queue depth issue with HDDs. TANSTAAFL. -- richard -- Richard Elling rich...@nexenta.com +1-760-896-4422 ZFS and NexentaStor training, Rotterdam, July 13-15, 2010 http://nexenta-rotterdam.eventbrite.com/ _______________________________________________ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss