Date: Fri, 19 Feb 2010 09:42:34 +0200 From: Nikolay Denev <ndenev@gmail.com> To: freebsd-fs@freebsd.org Subject: ZFS write stalls (starving reads) and tuning zfs_write_limit_override Message-ID: <E90AFEFB-D773-4122-B6C3-F00887C54BE3@gmail.com>
next in thread | raw e-mail | index | archive | help
Hi, I'm experiencing a problem mentioned numerous times in the OpenSolaris = mailing lists, and that is IO stalls while ZFS commits the current TXG, which starves = all other IO. One of the solutions proposed there was to tune the = zfs_write_limit_override tunable, so the maximum TXG size could be smaller than the default (that I think = is auto-calculated from the available system memory) It seems that this is also available on FreeBSD but the tunable in = question was not declared az FreeBSD TUNABLE/SYSCTL, so I just went and added the following lines = : SYSCTL_DECL(_vfs_zfs); TUNABLE_ULONG("vfs.zfs.write_limit_override", = &zfs_write_limit_override); SYSCTL_ULONG(_vfs_zfs, OID_AUTO, zfs_write_limit_override, CTLFLAG_RW, = &zfs_write_limit_override, 0, "Override maximum TXG size"); to src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c at line = 50 With this tunable I'm now able to throttle/limit the write bursts and = this gives me a smoother iSCSI writes as opposed to the 5 sec periodic drops to zero IOPS/MBs = from before. -- Regards, Nikolay Denev
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E90AFEFB-D773-4122-B6C3-F00887C54BE3>