From: Rich Freeman <rich0@gentoo.org>
To: gentoo-user@lists.gentoo.org
Subject: Re: [gentoo-user] Organising btrfs subvolumes
Date: Tue, 27 May 2014 08:12:56 -0400 [thread overview]
Message-ID: <CAGfcS_kJY-m=wwGtGqy_dWn=g=SpiRpo9rL+RizqYG8PNZN0=w@mail.gmail.com> (raw)
In-Reply-To: <20140527124915.092ab817@hactar.digimed.co.uk>
On Tue, May 27, 2014 at 7:49 AM, Neil Bothwick <neil@digimed.co.uk> wrote:
> I have zfs-snapshot making snapshots at 15 minute, hourly, daily, monthly
> and weekly intervals - and it cleans up after itself. There isn't
> anything quite like that for btrfs, so I'm knocking up a python script to
> take care of it. I want automated snapshots before I risk it on my
> desktop.
There is snapper, which is even in the tree now. It isn't 100%
flexible but supports any number of hourly, daily, monthly, and yearly
snapshots, with retention policies for each.
My problem was that the snapshots were created hourly, but cleaned up
daily, which meant 24 deleted in parallel at a time.
In general I've tended to notice that btrfs tends to suffer from
hurry-up-and-wait issues. It will happily accept a ton of writes
(even from an ioniced process) which I imagine go into the log, and
then the whole filesystem will come to a halt at the next checkpoint
(every 30s by default). It makes ionice just about useless, since the
filesystem accepts more data than it can handle, and then blocks even
realtime-priority processes while it is catching up.
I suspect that it was having a related issue with snapshot removals.
24 huge snapshot removal commands complete in almost zero time, and
then in 30s the debt comes due.
In order to be a bit more ionice-friendly the filesystem needs to
figure out what it can sustain and throttle writes to a reasonable
rate. I'm fine with having some allowance for bursting, but having
all disk access block for 10-20 seconds isn't acceptable.
Oh, and chromium just loves its disk cache - it will happily wait for
20 seconds to read a cache entry that it could have downloaded online
in less than a second.
Rich
next prev parent reply other threads:[~2014-05-27 12:13 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-22 16:12 [gentoo-user] Organising btrfs subvolumes Neil Bothwick
2014-05-22 22:34 ` Stefan G. Weichinger
2014-05-27 7:59 ` Neil Bothwick
2014-05-27 10:57 ` Stefan G. Weichinger
2014-05-27 11:25 ` Mick
2014-05-27 11:38 ` Rich Freeman
2014-05-27 11:51 ` Neil Bothwick
2014-05-27 11:39 ` Stefan G. Weichinger
2014-05-27 11:50 ` Neil Bothwick
2014-05-27 11:49 ` Neil Bothwick
2014-05-27 11:52 ` Stefan G. Weichinger
2014-05-27 12:12 ` Rich Freeman [this message]
2014-05-27 12:58 ` Stefan G. Weichinger
2014-05-27 13:59 ` Rich Freeman
2014-05-27 14:09 ` J. Roeleveld
2014-05-27 14:31 ` Rich Freeman
2014-05-27 15:12 ` [gentoo-user] Backups and snapshots [Was: Organising btrfs subvolumes] J. Roeleveld
2014-05-27 15:21 ` J. Roeleveld
2014-05-27 15:32 ` Rich Freeman
2014-05-27 20:19 ` Neil Bothwick
2014-05-28 10:03 ` Joost Roeleveld
2014-05-28 10:07 ` Neil Bothwick
2014-05-27 15:28 ` Rich Freeman
2014-05-28 10:13 ` Joost Roeleveld
2014-05-28 10:54 ` Rich Freeman
2014-05-27 21:35 ` Alan McKinnon
2014-05-28 9:58 ` Joost Roeleveld
2014-05-28 11:07 ` Alan McKinnon
2014-05-28 11:42 ` Joost Roeleveld
2014-05-28 12:52 ` Alan McKinnon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAGfcS_kJY-m=wwGtGqy_dWn=g=SpiRpo9rL+RizqYG8PNZN0=w@mail.gmail.com' \
--to=rich0@gentoo.org \
--cc=gentoo-user@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox