Linux NILFS development
 help / color / mirror / Atom feed
From: Ryusuke Konishi <ryusuke-sG5X7nlA6pw@public.gmane.org>
To: users-JrjvKiOkagjYtjvyW6yDsg@public.gmane.org,
	iglockner-S0/GAf8tV78@public.gmane.org
Subject: Re: Questions regarding use of nilfs2 on SSDs
Date: Sun, 29 Mar 2009 15:17:50 +0900 (JST)	[thread overview]
Message-ID: <20090329.151750.64733928.ryusuke@osrg.net> (raw)
In-Reply-To: <49CE8EDA.8070304-S0/GAf8tV78@public.gmane.org>

Hi!
On Sat, 28 Mar 2009 21:55:54 +0100, Ingo Glöckner wrote:
> Hello,
> 
> first of all thank you very much for contributing
> this great file system, nilfs2!
> I would like to use nilfs2 on an SSD but there
> are some open questions, hopefully you can help
> me clearing these issues.
> 
> - I have read somewhere
> > http://www.ocztechnologyforum.com/forum/showpost.php?p=361424&postcount=10
> 
>   that using nilfs2 as the rootfs generates enormous I/O traffic
>   (up to 45 GB write in 1-2 days!) If this is true, then it will
>   eventually translate into reduced lifetime for SSDs.
>   Can you confirm that the segment management of nilfs2
>   is so write-heavy on the drive?
>   If so, are there ways to avoid this?

Yes, this is true.  This is mainly because garbage collection creep
around the partition until no old updates are found.

The current GC algorithm is not intelligent.  Under the algorithm, a
filesystem holding large amount of data suffers long-run of GC.  That
is why the rootfs generated enourmous I/O traffic.

An easy way to reduce this is increasing ``protection_period'' in
/etc/nilfs_cleanerd.conf or just stopping GC while the partition has
enough free space.

Your requirement is clearly one of primary TODO items of nilfs2, but
unfortunately I have too many things to do.  One of my colleagues is
trying to improve the GC, so I'd like to expect his work.  Any
proposal to refine clearnerd is welcome.
 
> - The standard segment size of nilfs2 appears to be 8MB.
>   This compares to an erase block size of the SSD of
>   (say) 512 KB. I wonder if reducing the segment size
>   of nilfs to a smaller value (i.e., closer to the
>   erase block size of the SSD) will help to
>   keep the number of erased blocks/day small
>   (this will benefit the lifetime of the drive)
>   or if there is no such connection.
>   In any case, what is the useful range for segment
>   sizes? If I reduce the segment size, will I get
>   a performance penalty?

The segment size can be changed with -B option of mkfs.nilfs2.
It specifies the number of blocks per segment.

  # mkfs -t nilf2 -B 128  /dev/xxx

will make a partition with the segment size of 512 KB.
(the block size is 4KB unless you change it with -b option)

This will mitigate GC overhead because the number of segments per
cleaning is fixed to a value defined in /etc/nilfs_cleanerd.conf.

But, it's just effect of speed decreasing of the cleaner.  If the
purpose is slowing down the speed, just reducing
``nsegments_per_clean'' or increasing ``cleaning_interval'' in the
conf file can serve the purpose.

> - nilfs_cleanerd.conf specifies the following default values,
> 
> # The maximum number of segments to be cleaned at a time.
> nsegments_per_clean     2
> 
> # Cleaning interval in second.
> cleaning_interval       5
> 
> Do I interpret this correctly as stating that only 2 segments
> (i.e. 16MB) can be cleaned in 5 seconds?

Exactly.

> What negative effects will I get if I increase the number
> of segments that can be cleaned at a time?

It will increase memory pressure, and may unstabilize system.  And,
some trouble is reported in this mainling list.  We know filesystem
corrution will occasionally occur due to a nilfs2 bug which comes to
surface under such condition; I'm actually dig into the problem now.

I recommend you to decrease cleaning_interval instead of increasing
nsegemnts_per_clean if you try to speed up the cleaner.
 
Cheers,
Ryusuke Konishi

  parent reply	other threads:[~2009-03-29  6:17 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-28 20:55 Questions regarding use of nilfs2 on SSDs Ingo Glöckner
     [not found] ` <49CE8EDA.8070304-S0/GAf8tV78@public.gmane.org>
2009-03-29  6:17   ` Ryusuke Konishi [this message]
     [not found]     ` <20090329.151750.64733928.ryusuke-sG5X7nlA6pw@public.gmane.org>
2009-03-29 13:30       ` Ingo Glöckner

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=20090329.151750.64733928.ryusuke@osrg.net \
    --to=ryusuke-sg5x7nla6pw@public.gmane.org \
    --cc=iglockner-S0/GAf8tV78@public.gmane.org \
    --cc=users-JrjvKiOkagjYtjvyW6yDsg@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