From: Hans Reiser <reiser@namesys.com>
To: Jeff Mahoney <jeffm@suse.com>
Cc: Rogier Wolff <R.E.Wolff@harddisk-recovery.nl>,
reiserfs-list@namesys.com, copy@harddisk-recovery.nl
Subject: Re: ReiserFS problems
Date: Thu, 07 Aug 2003 19:05:52 +0400 [thread overview]
Message-ID: <3F326AD0.4070507@namesys.com> (raw)
In-Reply-To: <3F314BE8.50300@suse.com>
Jeff Mahoney wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> |> We've noticed horrible slowdowns when the filesystem is > 90% full. It
> |> turns out that when a block group is more than 90% full reiserfs will
> |> prefer a different block group. i.e. it is ALWAYS switching block
> |> groups when the whole disk is > 90% full. Something like that. When we
> |> report something like that it's always: Ah, yes, that's an old bug
> |> we've fixed it. Use patch.....
> |>
> | I don't think you reported that to me.....
> |
> | Jeff, give me an opinion on this....
>
> The skip_busy algorithm works like so:
>
> If the filesystem is less than 95% full, the allocator tries to be a bit
> smarter and leaves 10% of the bitmap free for future allocations to
> avoid fragmentation.
> If the bitmap being examined has 10% or less free
> space, it's skipped. *UNLESS* the file doing the allocation already has
> an interest in that bitmap, as determined by the allocator getting
> passed a non-zero offset into the bitmap.
Define this unless clause more fully please.
>
>
> If it finds no bitmaps that are more than 10% free or the filesystem is
> | 95% full, it restarts the search at the initial hint and ignores the
> 10% rule.
>
> In short;
> 1) Find a block in the current bitmap if the file's last block was
> allocated there.
> 2) If there aren't any, or there is no stake
stake?
> , search until a bitmap that
> is > 10% free is found, but only from the initial search point to the
> end of the disk - without wrapping around.
> 3) If there aren't any, try to find any free block from the initial
> search point until the end of the disk
> 4) If there aren't any, start at the beginning of the disk and search up
> to the initial search point.
>
> The idea is that allocations that can be kept contiguous should be. Once
> the allocation ends up being outside of the local bitmap, then the disk
> is already seeking, so it doesn't matter if it seeks a bit more if it
> can find another chunk where it can find contiguous allocation.
>
> All these searches are streamlined by making find_*_zero_bit do as
> little work as possible. For each bitmap, the offset of the first zero
> bit is kept as well as how many free bits there are. This makes it
> trivial to skip bitmaps that have < 10% free, as well as not force the
> allocator to scan entire bitmaps to find that the last bit is the zero
> bit.
>
> So, yes, when the filesystem approaches 95% full, and there are only new
> files being created, the *initial* allocations will scatter themselves.
it would be better to scatter at the directory rather than the file
level, but that is probably harder to code.
>
> This is by design so that the subsequent allocations for each of those
> files will be able to be contiguous with the original allocation.
>
> What is the workload that is producing the horrible slowdowns?
>
> - -Jeff
>
> - --
> jeffm@suse.com
> jeffm@csh.rit.edu
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.2.2-rc1-SuSE (GNU/Linux)
> Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
>
> iD8DBQE/MUvoLPWxlyuTD7IRArpkAJ9MThFNeVzmEIONDDlypsALv70dTACgj7xo
> EJVh5oDQWqfsG9RH9lcFtO4=
> =ZcoM
> -----END PGP SIGNATURE-----
>
>
>
--
Hans
next prev parent reply other threads:[~2003-08-07 15:05 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-08-06 16:20 ReiserFS problems Rogier Wolff
2003-08-06 16:43 ` Hans Reiser
2003-08-06 18:41 ` Jeff Mahoney
2003-08-06 19:21 ` Rogier Wolff
2003-08-06 19:36 ` Rogier Wolff
2003-08-06 22:08 ` Mike Fedyk
2003-08-07 4:40 ` Rogier Wolff
2003-08-06 19:40 ` Vitaly Fertman
2003-08-07 15:05 ` Hans Reiser [this message]
2003-08-07 15:53 ` Jeff Mahoney
2003-08-08 13:07 ` Hans Reiser
2003-08-06 20:48 ` Bernd Schubert
2003-08-06 16:48 ` Oleg Drokin
2003-08-06 17:18 ` Rogier Wolff
2003-08-06 17:28 ` Oleg Drokin
2003-08-06 17:49 ` Rogier Wolff
2003-08-06 18:10 ` Vitaly Fertman
2003-08-07 13:22 ` Hans Reiser
2003-08-07 18:12 ` Mike Fedyk
2003-08-08 0:18 ` Russell Coker
2003-08-08 11:29 ` [OT] " Christian Kujau
2003-08-08 12:40 ` Nikita Danilov
2003-08-08 13:06 ` Carl-Daniel Hailfinger
2003-08-08 12:59 ` Russell Coker
2003-08-08 15:39 ` Christian Kujau
2003-08-09 0:45 ` The Amazing Dragon
2003-08-08 9:56 ` Oleg Drokin
2003-08-06 17:43 ` Andreas Dilger
2003-08-06 17:52 ` Rogier Wolff
2003-08-07 13:27 ` Hans Reiser
2003-08-07 13:03 ` Hans Reiser
2003-08-07 13:41 ` Rogier Wolff
2003-08-07 18:44 ` Mike Fedyk
2003-08-06 17:22 ` Rogier Wolff
2003-08-06 18:01 ` Vitaly Fertman
2003-08-06 18:14 ` Rogier Wolff
2003-08-06 18:22 ` Rogier Wolff
2003-08-06 19:03 ` Oleg Drokin
2003-08-06 19:04 ` Vitaly Fertman
2003-08-07 13:35 ` Hans Reiser
2003-08-07 13:46 ` Rogier Wolff
2003-08-07 14:11 ` Vitaly Fertman
2003-08-06 18:52 ` Vitaly Fertman
2003-08-07 12:58 ` Hans Reiser
2003-08-07 13:24 ` Russell Coker
2003-08-07 14:41 ` Hans Reiser
2003-08-06 16:52 ` Andreas Dilger
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=3F326AD0.4070507@namesys.com \
--to=reiser@namesys.com \
--cc=R.E.Wolff@harddisk-recovery.nl \
--cc=copy@harddisk-recovery.nl \
--cc=jeffm@suse.com \
--cc=reiserfs-list@namesys.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.