[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <1309542015.5364.24.camel@werner-t410>
Date: Fri, 01 Jul 2011 19:40:15 +0200
From: Werner Fischer <devlists@...i.net>
To: Greg Freemyer <greg.freemyer@...il.com>
Cc: linux-ext4@...r.kernel.org
Subject: Re: -E stride and stripe-width necessary for best performace of
SSDs?
Hi Greg,
thanks for your feedback,
On Fri, 2011-07-01 at 12:03 -0400, Greg Freemyer wrote:
> On Fri, Jul 1, 2011 at 5:30 AM, Werner Fischer <devlists@...i.net> wrote:
> > * I want to optimize ext4 on my SSD (Intel 320 Series 160 GB).
> > * There are some sites recommending the use of the -E stride and -E
> > stripe-width paramaters, like
> > http://searchenterpriselinux.techtarget.com/tip/Optimizing-Linux-for-SSD-usage
> > * I know these parameters are useful for RAIDs, but I don't think that
> > they have any advantages for SSDs.
> >
> > Can anybody with deeper ext4 knowledge confirm if I'm right?
> That article is highly simplistic, and I dare say inaccurate due to
> the simplifications.
>
> For most of us SSDs are magic boxes we push data into and pull data out of.
>
> We know the data gets stored on NAND chips and that many (most?) NAND
> chips have 128KB Erase Blocks.
Meanwhile Block sizes have increased up to 2 MiB: 256 pages รก 8 KiB for
current 25nm NAND from Intel/Micron (which is used also in my SSD)
http://www.anandtech.com/show/2928
> But we have no knowledge of how the data itself is organized.
> Assuming that a Erase Block contains contiguous sectors is wrong in
> most cases.
I agree, AFAIK this was only true for the very first SSDs on the market.
> There is sophisticated logic going on that is re-mapping
> the data. Those algorithms are NOT public. We definitely don't know
> enough to know what stride etc. is optimal.
>
> I personally think using 1MB for partition boundaries
I agree
> and a stride
> which is a multiple of 4KB is probably best, but there really is no
> good way to know other than performance testing the specific make /
> model / firmware release you are working with.
For the 25nm NAND from Intel/Micron we know its page size = 8 KiB.
For an Ext4 file system with block size 4 KiB (4096 Byte) I could
imagine that using
stride=2 (2 file system blocks = 8 KiB) and
stripe-width=2 (also 2 file system blocks = 8 KiB)
would make sense? (just taking the page size into account)
> Here's two wiki pages I wrote that may give you some background:
> http://en.opensuse.org/SDB:SSD_Idle_Time_Garbage_Collection_support
> http://en.opensuse.org/SDB:SSD_discard_%28trim%29_support
> You might want to read them both, then read them both again because
> the topics depend on each other.
Thank a lot, I already came across them - they've been valuable to me!
Werner
> And I just noticed this one:
> http://en.opensuse.org/SDB:SSD_performance
> I have no idea how accurate the last article is. (I have not read/reviewed it.)
>
> Greg
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists