Date: Wed, 23 Jul 2008 10:19:30 +0200 From: Pawel Jakub Dawidek <pjd@FreeBSD.org> To: Matt Simerson <matt@corp.spry.com> Cc: freebsd-fs@freebsd.org Subject: Re: ZFS hang issue and prefetch_disable Message-ID: <20080723081930.GB3603@garage.freebsd.pl> In-Reply-To: <BAA45F6C-FD85-4767-B6AB-F3D2C8D31645@corp.spry.com> References: <5E8D64DE-EC9B-4B11-BCB4-17BA63650BB7@corp.spry.com> <48865A68.1010504@quip.cz> <BAA45F6C-FD85-4767-B6AB-F3D2C8D31645@corp.spry.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--zx4FCpZtqtKETZ7O Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Jul 22, 2008 at 03:22:17PM -0700, Matt Simerson wrote: >=20 > On Jul 22, 2008, at 3:08 PM, Miroslav Lachman wrote: >=20 > >Matt Simerson wrote: > >>Symptoms > >>Deadlocks under heavy IO load on the ZFS file system with =20 > >>prefetch_disable=3D0. Setting vfs.zfs.prefetch_disable=3D1 results in = =20 > >>a stable system. > > > >[...] > > > >>With vfs.zfs.prefetch_disable=3D1, a hang will occur within a few =20 > >>hours (no more than a day). If I keep the i/o load (measured via =20 > >>iostat) down to a low level (< 200 iops) then I still get hangs =20 > >>but less frequently (1-6 days). The only way I have found to =20 > >>prevent the hangs is by setting vfs.zfs.prefetch_disable=3D1. > > > >"With vfs.zfs.prefetch_disable=3D1, a hang will occur within...", did = =20 > >you realy mean prefetch_disable=3D1 in this sentence? Your whole e-=20 > >mail seems that prefetch_disable=3D1 is good workaround, so I expect =20 > >you have prefetch_disable=3D0 previously which causes hangs... >=20 > Aye. That is exactly what I meant. With vfs.zfs.prefetch_disable=3D1, = =20 > I get a stable system. With vfs.zfs.prefetch_disable=3D0 (the default) I = =20 > have frequent deadlocks. >=20 > Matt >=20 > Rant: I really wish that variable wasn't named in the negative, =20 > creating a double negative when prefetch_disable=3D0. IE, it should be = =20 > named vfs.zfs.prefetch_enable instead. It's much easier to express in = =20 > English that prefetch_enable=3D1 means ON and prefetch_enable=3D0 means = =20 > OFF. There's also the matter than in some languages, a double or =20 > triple negative still means the negative case. %-\. I'd rather not =20 > have to guess what prefetch_disable=3D1 means.=20 I agree. We even discussed sysctl naming in the past AFAIR to use exactly 'enable', not 'disable' variants. Although I want to track Solaris as close as possible, that's why I'm using what they have. The intent is to make it easier for people to use ZFS on both Solaris and FreeBSD by not introducing small, but anoying differences. --=20 Pawel Jakub Dawidek http://www.wheel.pl pjd@FreeBSD.org http://www.FreeBSD.org FreeBSD committer Am I Evil? Yes, I Am! --zx4FCpZtqtKETZ7O Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.4 (FreeBSD) iD8DBQFIhumSForvXbEpPzQRAiQYAKDw3lAwoYgMPGCkihOV+1tNI8+CYwCgyjiK pFuRtO5DF/gOiBGVweoehJ0= =EyyP -----END PGP SIGNATURE----- --zx4FCpZtqtKETZ7O--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080723081930.GB3603>