Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 10 May 2019 12:01:22 +0200
From:      Miroslav Lachman <000.fbsd@quip.cz>
To:        Alan Somers <asomers@freebsd.org>
Cc:        FreeBSD-STABLE Mailing List <freebsd-stable@freebsd.org>, Dimitry Andric <dim@freebsd.org>
Subject:   Re: ZFS...
Message-ID:  <8e443083-1254-520b-014d-2f9a94008533@quip.cz>
In-Reply-To: <CAOtMX2ip_G0afh_4AaYcQt4=zX4qkCTfs0qb66DpCgcALZXS5g@mail.gmail.com>
References:  <30506b3d-64fb-b327-94ae-d9da522f3a48@sorbs.net> <d0118f7e-7cfc-8bf1-308c-823bce088039@denninger.net> <2e4941bf-999a-7f16-f4fe-1a520f2187c0@sorbs.net> <20190430102024.E84286@mulder.mintsol.com> <41FA461B-40AE-4D34-B280-214B5C5868B5@punkt.de> <20190506080804.Y87441@mulder.mintsol.com> <08E46EBF-154F-4670-B411-482DCE6F395D@sorbs.net> <33D7EFC4-5C15-4FE0-970B-E6034EF80BEF@gromit.dlib.vt.edu> <A535026E-F9F6-4BBA-8287-87EFD02CF207@sorbs.net> <a82bfabe-a8c3-fd9a-55ec-52530d4eafff@denninger.net> <a1b78a63-0ef1-af51-4e33-a9a97a257c8b@sorbs.net> <CAMPTd_A7RYJ12pFyY4TzbXct82kWfr1hcEkSpDg7bjP25xjJGA@mail.gmail.com> <d91cf5@sorbs.net> <7D18A234-E7BF-4855-BD51-4AE2253DB1E4@sorbs.net> <E68600B3-F856-4909-AB6E-BDFCD8AAAB43@punkt.de> <805ee7f1-83f6-c59e-8107-4851ca9fce6e@quip.cz> <E980141F-48D9-4870-8FE1-9A5610F12826@FreeBSD.org> <5de7f3d3-b34c-0382-b7d4-b7e38339649b@quip.cz> <CAOtMX2ip_G0afh_4AaYcQt4=zX4qkCTfs0qb66DpCgcALZXS5g@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Alan Somers wrote on 2019/05/09 14:50:

[...]

> On 11.3 and even much older releases, you can greatly speed up scrub
> and resilver by tweaking some sysctls.  If you have spinning rust,
> raise vfs.zfs.top_maxinflight so they'll do fewer seeks.  I used to
> set it to 8192 on machines with 32GB of RAM.  Raising
> vfs.zfs.resilver_min_time_ms to 5000 helps a little, too.

I have this in sysctl.conf
vfs.zfs.scrub_delay=0
vfs.zfs.top_maxinflight=128
vfs.zfs.resilver_min_time_ms=5000
vfs.zfs.resilver_delay=0

I found it somewhere in the mailinglist discussing this issue in the past.

Isn't yours 8192 too much? The machine in question has 4x SATA drives on 
very dump and slow controller and only 5GB of RAM.

Even if I read this
vfs.zfs.top_maxinflight: Maximum I/Os per top-level vdev
I am still not sure what it really means and how I can "calculate" 
optimal value.

As Michelle pointed there is drawback when sysctls are optimized for 
quick scrub, but this machines is only running nightly backup script 
fetching data from other 20 machines so this scrip sets sysctl back to 
sane defaults during backup
sysctl vfs.zfs.scrub_delay=4 > /dev/null
sysctl vfs.zfs.top_maxinflight=32 > /dev/null
sysctl vfs.zfs.resilver_min_time_ms=3000 > /dev/null
sysctl vfs.zfs.resilver_delay=2 > /dev/null

At the and it reloads back optimized settings from sysctel.conf

Miroslav Lachman



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8e443083-1254-520b-014d-2f9a94008533>