Skip site navigation (1)Skip section navigation (2)
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>