public inbox for gentoo-user@lists.gentoo.org
 help / color / mirror / Atom feed
From: Frank Steinmetzger <Warp_7@gmx.de>
To: gentoo-user@lists.gentoo.org
Subject: Re: [gentoo-user] Finally got a SSD drive to put my OS on
Date: Tue, 18 Apr 2023 10:03:53 +0200	[thread overview]
Message-ID: <ZD5O6djXqItt65eh@moby> (raw)
In-Reply-To: <CAK2H+ec3j3AiF65O41n-+T6VPd=vo_FpNf0PcUofW99w+PbZKg@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 3123 bytes --]

Am Mon, Apr 17, 2023 at 10:45:46AM -0700 schrieb Mark Knecht:

> And I don't know that formatting ext4 or some other FS to 16K
> really helps the write amplification issue but it makes sense to
> me to match the file system blocks to the underlying flash
> block size.

The problem is finding out the write block size. This 7-year-old post says 
it’s reached 16 K: https://superuser.com/questions/976257/page-sizes-ssd

So I would say don’t bother. If everything is trimmed, there is no 
amplification. And if the disk becomes full and you get WA when writing 
itsy-bitsy 4 K files, you probably still won’t notice much difference, as 
random 4 K writes are slow anyways and how often do you write thousands of
4 K files outside of portage?

Erase block sizes probably go into the megabytes these days:
https://news.ycombinator.com/item?id=29165202

Some more detailed explanation:
https://spdk.io/doc/ssd_internals.html
  “For each erase block, each bit may be written to (i.e. have its bit 
  flipped from 0 to 1) with bit-granularity once. In order to write to the 
  erase block a second time, the entire block must be erased (i.e. all bits 
  in the block are flipped back to 0).”

This sounds like my initial statement was partially wrong – trimming does 
cause writing zeroes, because that’s what an erase does. But it still 
prevents write amplification (and one extra erase cycle) because 
neighbouring blocks don’t need to be read and written back.

> Real speed testing would be required to ensure reading
> 16K blocks doesn't slow him down though.

Here are some numbers and a conclusion gathered from a read test:
https://superuser.com/questions/728858/how-to-determine-ssds-nand-erase-block-size

Unless I positively need the speed for high-performance computing, I’d 
rather keep the smaller granularity for more capacity at low file sizes.

A problem is what some call “parts lottery” these days: manufacturers 
promise some performance on the data sheet (“up to xxx”), but not with which 
parts they want to achieve this (types of flash chips, TLC/QLC, controller, 
DRAM and so on). Meaning during the lifetime of a product, its internals may 
change and as a consequence those specs are not in the data sheet:

https://unix.stackexchange.com/questions/334804/is-there-a-way-to-find-out-ssd-page-size-on-linux-unix-what-is-physical-block
  “There is no standard way for a SSD to report its page size or erase block 
  size. Few if any manufacturers report them in the datasheets. (Because 
  they may change during the lifetime of a SKU, for example because of 
  changing suppliers.)
  For practical use just align all your data structures (partitions, payload 
  of LUKS containers, LVM logical volumes) to 1 or 2 MiB boundaries. It's an 
  SSD after all--it is designed to cope with usual filesystems, such as NTFS 
  (which uses 4 KiB allocation units).”

-- 
Grüße | Greetings | Qapla’
Please do not share anything from, with or about me on any social network.

The worst disease is indifference. So what?

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  parent reply	other threads:[~2023-04-18  8:04 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-15 22:47 [gentoo-user] Finally got a SSD drive to put my OS on Dale
2023-04-15 23:24 ` Mark Knecht
2023-04-15 23:44   ` thelma
2023-04-16  1:47 ` William Kenworthy
2023-04-16  7:18   ` Peter Humphrey
2023-04-16  8:43     ` William Kenworthy
2023-04-16 15:08       ` Mark Knecht
2023-04-16 15:29         ` Dale
2023-04-16 16:10           ` Mark Knecht
2023-04-16 16:54             ` Dale
2023-04-16 18:14               ` Mark Knecht
2023-04-16 18:53                 ` Dale
2023-04-16 19:30                   ` Mark Knecht
2023-04-16 22:26                     ` Dale
2023-04-16 23:16                       ` Frank Steinmetzger
2023-04-17  1:14                         ` Dale
2023-04-17  9:40                           ` Wols Lists
2023-04-17 17:45                             ` Mark Knecht
2023-04-18  0:35                               ` Dale
2023-04-18  8:03                               ` Frank Steinmetzger [this message]
2023-10-07  7:22                         ` Dale
2023-04-16 17:46         ` Jorge Almeida
2023-04-16 18:07         ` Frank Steinmetzger
2023-04-16 20:22           ` Mark Knecht
2023-04-16 22:17             ` Frank Steinmetzger
2023-04-17  0:34               ` Mark Knecht
2023-04-18 14:52 ` [gentoo-user] " Nikos Chantziaras
2023-04-18 15:05   ` Dale
2023-04-18 15:36     ` Nikos Chantziaras
2023-04-18 20:01       ` Dale
2023-04-18 20:53         ` Wol
2023-04-18 22:13           ` Frank Steinmetzger
2023-04-18 23:08             ` Wols Lists
2023-04-19  1:15               ` Dale
2023-04-18 20:57         ` Mark Knecht
2023-04-18 21:15           ` Dale
2023-04-18 21:25             ` Mark Knecht
2023-04-19  1:36               ` Dale
2023-04-18 22:18     ` Frank Steinmetzger
2023-04-18 22:41       ` Frank Steinmetzger
2023-04-19  1:45       ` Dale
2023-04-19  8:00         ` Nikos Chantziaras
2023-04-19  9:42           ` Dale
2023-04-19 10:34           ` Peter Humphrey
2023-04-19 17:14             ` Mark Knecht
2023-04-19 17:59             ` Dale
2023-04-19 18:13               ` Mark Knecht
2023-04-19 19:26                 ` Dale
2023-04-19 19:38                   ` Nikos Chantziaras
2023-04-19 20:00                     ` Mark Knecht
2023-04-19 22:13                       ` Frank Steinmetzger
2023-04-19 23:32                         ` Dale
2023-04-20  1:09                           ` Mark Knecht
2023-04-20  4:23                             ` Dale
2023-04-20  4:41                               ` eric
2023-04-20  9:48                                 ` Dale
2023-04-20 23:02                               ` Wol
2023-04-20  8:55                             ` Frank Steinmetzger
2023-04-20  8:52                           ` Frank Steinmetzger
2023-04-20  9:29                             ` Dale
2023-04-20 10:08                               ` Peter Humphrey
2023-04-20 10:59                                 ` Dale
2023-04-20 13:23                                   ` Nikos Chantziaras
2023-04-20 12:23                               ` Frank Steinmetzger
2023-04-20  9:46               ` Peter Humphrey
2023-04-20  9:49                 ` Dale
2023-04-18 17:52   ` Mark Knecht

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=ZD5O6djXqItt65eh@moby \
    --to=warp_7@gmx.de \
    --cc=gentoo-user@lists.gentoo.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