From: Imran Geriskovan <imran.geriskovan@gmail.com>
To: linux-btrfs@vger.kernel.org
Subject: Re: Btrfs/SSD
Date: Tue, 18 Apr 2017 15:02:42 +0200 [thread overview]
Message-ID: <CAK5rZE7WHeTknmQdjX7vianEj4RmdLU+ocTLhbAxYenRjLegaA@mail.gmail.com> (raw)
In-Reply-To: <f5cb15a5-5566-b366-ebda-c3101fa96eec@gmail.com>
On 4/17/17, Austin S. Hemmelgarn <ahferroin7@gmail.com> wrote:
> Regarding BTRFS specifically:
> * Given my recently newfound understanding of what the 'ssd' mount
> option actually does, I'm inclined to recommend that people who are
> using high-end SSD's _NOT_ use it as it will heavily increase
> fragmentation and will likely have near zero impact on actual device
> lifetime (but may _hurt_ performance). It will still probably help with
> mid and low-end SSD's.
I'm trying to have a proper understanding of what "fragmentation" really
means for an ssd and interrelation with wear-leveling.
Before continuing lets remember:
Pages cannot be erased individually, only whole blocks can be erased.
The size of a NAND-flash page size can vary, and most drive have pages
of size 2 KB, 4 KB, 8 KB or 16 KB. Most SSDs have blocks of 128 or 256
pages, which means that the size of a block can vary between 256 KB
and 4 MB.
codecapsule.com/.../coding-for-ssds-part-2-architecture-of-an-ssd-and-benchmarking/
Lets continue:
Since block sizes are between 256k-4MB, data smaller than this will
"probably" will not be fragmented in a reasonably empty and trimmed
drive. And for a brand new ssd we may speak of contiguous series
of blocks.
However, as drive is used more and more and as wear leveling kicking in
(ie. blocks are remapped) the meaning of "contiguous blocks" will erode.
So any file bigger than a block size will be written to blocks physically apart
no matter what their block addresses says. But my guess is that accessing
device blocks -contiguous or not- are constant time operations. So it would
not contribute performance issues. Right? Comments?
So your the feeling about fragmentation/performance is probably related
with if the file is spread into less or more blocks. If # of blocks used
is higher than necessary (ie. no empty blocks can be found. Instead
lots of partially empty blocks have to be used increasing the total
# of blocks involved) then we will notice performance loss.
Additionally if the filesystem will gonna try something to reduce
the fragmentation for the blocks, it should precisely know where
those blocks are located. Then how about ssd block informations?
Are they available and do filesystems use it?
Anyway if you can provide some more details about your experiences
on this we can probably have better view on the issue.
> * Files with NOCOW and filesystems with 'nodatacow' set will both hurt
> performance for BTRFS on SSD's, and appear to reduce the lifetime of the
> SSD.
This and other experinces tell us it is still possible to "forge some
blocks of ssd". How could this be possible if there is wear-leveling?
Two alternatives comes to mind:
- If there is no empty (trimmed) blocks left on the ssd, it will have no
chance other than forging the block. How about its reserve blocks?
Are they exhausted too? Or are they only used as bad block replacements?
- No proper wear-levelling is accually done by the drive.
Comments?
next prev parent reply other threads:[~2017-04-18 13:02 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-14 11:02 Btrfs/SSD Imran Geriskovan
2017-04-17 11:53 ` Btrfs/SSD Austin S. Hemmelgarn
2017-04-17 16:58 ` Btrfs/SSD Chris Murphy
2017-04-17 17:13 ` Btrfs/SSD Austin S. Hemmelgarn
2017-04-17 18:24 ` Btrfs/SSD Roman Mamedov
2017-04-17 19:22 ` Btrfs/SSD Imran Geriskovan
2017-04-17 22:55 ` Btrfs/SSD Hans van Kranenburg
2017-04-19 18:10 ` Btrfs/SSD Chris Murphy
2017-04-18 12:26 ` Btrfs/SSD Austin S. Hemmelgarn
2017-04-18 3:23 ` Btrfs/SSD Duncan
2017-04-18 4:58 ` Btrfs/SSD Roman Mamedov
2017-04-17 18:34 ` Btrfs/SSD Chris Murphy
2017-04-17 19:26 ` Btrfs/SSD Austin S. Hemmelgarn
2017-04-17 19:39 ` Btrfs/SSD Chris Murphy
2017-04-18 11:31 ` Btrfs/SSD Austin S. Hemmelgarn
2017-04-18 12:20 ` Btrfs/SSD Hugo Mills
2017-04-18 13:02 ` Imran Geriskovan [this message]
2017-04-18 13:39 ` Btrfs/SSD Austin S. Hemmelgarn
2017-05-12 18:27 ` Btrfs/SSD Kai Krakow
2017-05-12 20:31 ` Btrfs/SSD Imran Geriskovan
2017-05-13 9:39 ` Btrfs/SSD Duncan
2017-05-13 11:15 ` Btrfs/SSD Janos Toth F.
2017-05-13 11:34 ` [OT] SSD performance patterns (was: Btrfs/SSD) Kai Krakow
2017-05-14 16:21 ` Btrfs/SSD Chris Murphy
2017-05-14 18:01 ` Btrfs/SSD Tomasz Kusmierz
2017-05-14 20:47 ` Btrfs/SSD (my -o ssd "summary") Hans van Kranenburg
2017-05-14 23:01 ` Btrfs/SSD Imran Geriskovan
2017-05-15 0:23 ` Btrfs/SSD Tomasz Kusmierz
2017-05-15 0:24 ` Btrfs/SSD Tomasz Kusmierz
2017-05-15 11:25 ` Btrfs/SSD Imran Geriskovan
2017-05-15 11:46 ` Btrfs/SSD Austin S. Hemmelgarn
2017-05-15 19:22 ` Btrfs/SSD Kai Krakow
2017-05-12 4:51 ` Btrfs/SSD Duncan
2017-05-12 13:02 ` Btrfs/SSD Imran Geriskovan
2017-05-12 18:36 ` Btrfs/SSD Kai Krakow
2017-05-13 9:52 ` Btrfs/SSD Roman Mamedov
2017-05-13 10:47 ` Btrfs/SSD Kai Krakow
2017-05-15 12:03 ` Btrfs/SSD Austin S. Hemmelgarn
2017-05-15 13:09 ` Btrfs/SSD Tomasz Kusmierz
2017-05-15 19:12 ` Btrfs/SSD Kai Krakow
2017-05-16 4:48 ` Btrfs/SSD Duncan
2017-05-15 19:49 ` Btrfs/SSD Kai Krakow
2017-05-15 20:05 ` Btrfs/SSD Tomasz Torcz
2017-05-16 1:58 ` Btrfs/SSD Kai Krakow
2017-05-16 12:21 ` Btrfs/SSD Tomasz Torcz
2017-05-16 12:35 ` Btrfs/SSD Austin S. Hemmelgarn
2017-05-16 17:08 ` Btrfs/SSD Kai Krakow
2017-05-16 11:43 ` Btrfs/SSD Austin S. Hemmelgarn
2017-05-14 8:46 ` Btrfs/SSD Duncan
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=CAK5rZE7WHeTknmQdjX7vianEj4RmdLU+ocTLhbAxYenRjLegaA@mail.gmail.com \
--to=imran.geriskovan@gmail.com \
--cc=linux-btrfs@vger.kernel.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;
as well as URLs for NNTP newsgroup(s).