From: Jiro SEKIBA <jir-hfpbi5WX9J54Eiagz67IpQ@public.gmane.org>
To: Gordan Bobic <gordan-UpbECiGlrmGsTnJN9+BGXg@public.gmane.org>
Cc: linux-nilfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: SSD and non-SSD Suitability
Date: Tue, 01 Jun 2010 22:05:11 +0900 [thread overview]
Message-ID: <877hmigayg.wl%jir@sekiba.com> (raw)
In-Reply-To: <4C00D3B7.8060904-UpbECiGlrmGsTnJN9+BGXg@public.gmane.org>
At Sat, 29 May 2010 09:43:35 +0100,
Gordan Bobic wrote:
>
> Jiro SEKIBA wrote:
>
> >>>> 2) Mechanical disks suffer from slow random writes (or any random
> >>>> operation for that matter), too. Do the benefits of nilfs show in random
> >>>> write performance on mechanical disks?
> >>> I think it may have benefits, for nilfs will write sequentially whatever
> >>> data is located before writing it. But still some tweaks might be required
> >>> to speed up compared with ordinary filsystem like ext3.
> >> Can you quantify what those tweaks may be, and when they might become
> >> available/implemented?
> >
> > I might choose the wrong word, but what I meant is more hack is required
> > to improve write performance. Not just configuration matters :(.
>
> I understand what you meant. I just wanted to know when those hacks may
> be implemented and be available for those of us interested in using
> nilfs to optimize write-heavy workloads.
Nhh, that's really diffcult question. There is no target date to hack.
From kernel release point of view, at least another 3 months
require to drop those kind of non-bugfix code. For, merge window
has just been closed. And if you need stable release, it takes
about 3 months to release after next merge window opens.
That means at least a half year :(.
Of course, you can chase Ryusuke's tree though.
> >>>> 3) How does this affect real-world read performance if nilfs is used on
> >>>> a mechanical disk? How much additional file fragmentation in absolute
> >>>> terms does nilfs cause?
> >>> The data is scattered if you modified the file again and again,
> >>> but it'll be almost sequential at the creation time. So it will
> >>> affect much if files are modified frequently.
> >> Right. So bad for certain tasks, such as databases.
> >
> > Indeed. maybe /var type of directories too.
>
> Interesting. So nilfs' suitability for write heavy loads is actually
> quite limited on mechanical disks, as it isn't suitable for append-heavy
> situations such as databases and logging, but for use-cases that are
> write+delete heavy such as mail servers or other spool type loads it
> should still be advantageous.
>
> >>>> 4) As the data gets expired, and snapshots get deleted, this will
> >>>> inevitably lead to fragmentation, which will de-linearize writes as they
> >>>> have to go into whatever holes are available in the data. How does this
> >>>> affect nilfs write performance?
> >>> For now, my understanding, nilfs garbage collector moves the live (in use)
> >>> blocks to the end of logs, so holes are not created (it is correct?).
> >>> However, it leads another issue that garbage collector process, which is
> >>> nilfs_cleanerd, will consume the I/O. This is major I/O performance
> >>> bottle neck current implementation.
> >> Since this moves files, it sounds like this could be a major issue for
> >> flash media since it unnecessarily creates additional writes. Can this
> >> be suppressed?
> >
> > You can simply kill the nilfs_clearnerd after you mount the nilfs partition.
> > This case, of course, any garbage is reclaimed and finally end up with
> > disk full, even size of files don't occupy the storage size.
> >
> > I don't have data for now, but it made about twice better write performance
> > compared with "with garbage collector".
>
> What about enabling garbage collection, but disabling degragmentation?
> De-allocating space that isn't used any more is a necessary evil, but
> defragmentation is rather pointless in a lot of cases (e.g. SSDs) and
> counter-productive in others (mechanical disks under heavy load). Also,
> what about making the garbage collector "lazy", so that it runs either
> just-in time to overwrite discarded data (worst case scenario) or runs
> when the disks are idle (e.g. at ionice -c3, and even that only when
> there have been no disk transactions for, some selectable number of ms)?
Garbage collection and defragmentation is a set of funtcions for nilfs.
Nilfs manages disk in segment basis. Each segment is 8MB (except first one).
Each segments include many logs, some logs are alive, some logs are garbage.
To reuse those garbage in a segment, entire segment must be freed.
To do that, nilfs garbage collector moves the live logs.
Therefore it's difficult to separate garbage collection and defragmentation,
at least on current nilfs implementation.
Still there may be better garbage collect algorithm.
thanks
regards,
> Gordan
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>
>
--
Jiro SEKIBA <jir-hfpbi5WX9J54Eiagz67IpQ@public.gmane.org>
--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2010-06-01 13:05 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-26 10:18 SSD and non-SSD Suitability Gordan Bobic
[not found] ` <4BFCF55A.80205-UpbECiGlrmGsTnJN9+BGXg@public.gmane.org>
2010-05-28 6:29 ` Jiro SEKIBA
[not found] ` <87typspmiq.wl%jir-27yqGEOhnJbQT0dZR+AlfA@public.gmane.org>
2010-05-28 9:50 ` Gordan Bobic
[not found] ` <4BFF91E7.9000102-UpbECiGlrmGsTnJN9+BGXg@public.gmane.org>
2010-05-29 7:31 ` Jiro SEKIBA
[not found] ` <87d3wf17vj.wl%jir-27yqGEOhnJbQT0dZR+AlfA@public.gmane.org>
2010-05-29 7:50 ` David Arendt
[not found] ` <4C00C745.6050903-/LHdS3kC8BfYtjvyW6yDsg@public.gmane.org>
2010-05-29 8:45 ` Gordan Bobic
[not found] ` <4C00D433.2010406-UpbECiGlrmGsTnJN9+BGXg@public.gmane.org>
2010-05-29 8:56 ` David Arendt
2010-05-29 8:43 ` Gordan Bobic
[not found] ` <4C00D3B7.8060904-UpbECiGlrmGsTnJN9+BGXg@public.gmane.org>
2010-06-01 13:05 ` Jiro SEKIBA [this message]
2010-05-28 8:17 ` Vincent Diepeveen
[not found] ` <927E6E4B-B072-42EE-915A-FD34A88D478A-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>
2010-05-28 9:24 ` Gordan Bobic
[not found] ` <4BFF8BD6.7080802-UpbECiGlrmGsTnJN9+BGXg@public.gmane.org>
2010-05-28 10:15 ` Vincent Diepeveen
[not found] ` <72C0FCE6-CE1A-4262-B89F-A1C3CBA99EAD-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>
2010-05-28 10:44 ` Gordan Bobic
[not found] ` <4BFF9E74.6040900-UpbECiGlrmGsTnJN9+BGXg@public.gmane.org>
2010-05-28 12:33 ` Vincent Diepeveen
[not found] ` <BF3C6199-02BC-415A-B028-E856312FB2DD-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>
2010-05-28 13:36 ` Gordan Bobic
[not found] ` <4BFFC6FA.8010208-UpbECiGlrmGsTnJN9+BGXg@public.gmane.org>
2010-05-28 14:31 ` Vincent Diepeveen
[not found] ` <20C856F0-0CEB-45B9-A668-C07C89A7D338-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>
2010-05-28 15:36 ` Gordan Bobic
2010-05-28 12:45 ` Vincent Diepeveen
[not found] ` <A3BB0C84-D2BD-4119-9296-0A4D9FC02F19-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>
2010-05-28 13:39 ` Gordan Bobic
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=877hmigayg.wl%jir@sekiba.com \
--to=jir-hfpbi5wx9j54eiagz67ipq@public.gmane.org \
--cc=gordan-UpbECiGlrmGsTnJN9+BGXg@public.gmane.org \
--cc=linux-nilfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.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