2

I recently asked a question about how to shrink down an image so that it fits onto a very small SD-Card. In both answer and comments people were giving me the advice to not use a SD-Card smaller than 2GB since it is better to have free space.

I guess this has to do with the cards on-board wear prevention since it can move dead blocks to free, non used, right? So should this space be just free or should it be unpartitioned?

For my current project I now have two options. Both are using the Miniban Distribution which takes about 500MB of disk-space. I've switched off logging and all the other things that kept writing on the disk.

Project Details

In this project I am using a RRD-Database to record sensor values and build averages. Data will be collected over a period of one year. Problem however is that the Database will be filled up with zeros once it is being initialized. So every entry has its fixed place on the disk. I am a bit afraid that this forces wear.

Option One:

Using a standard / consumer MLC microSD-Card, 4-8GB with approx. 5,000 P/E-Cycles (according to the docs).

Option Two:

Using an industrial SLC microSD-Card, 1GB with a minimum of 100,000 P/E-Cycles per single Flash-Cell (according to the docs) and having at least 400MB of free space available.

Manufacturer of the SLC-microSD-Card is swissbit. You can find one here: swissbit 1GB SLC microSD-Card on Mouser

And detailed informations about their SD-Cards here: swissbit technical details

Question

In my opinion the answer is very clear: Even when using a 1GB SD-Card, 100,000 P/E-Cycles vs. 5,000 P/E-Cycles is a very obvious comparison - at least in my eyes.

But since SLC-Cards are more expensive I am curious to know if the same performance could be reached with a consumer Card with less cycles but more free space?

And most important: Does using 60% to 70% or even 90% of the SLC-Cards free space make their 100,000 P/E-Cycles useless?

  • Given the low cost of one or two units of each card, would it perhaps make sense just to run a test? – goobering Jun 21 '16 at 9:15
  • 1
    The wear leveling implementations of consumer SD cards are top-secret. Furthermore in the consumer arena vendors propably change them secretly from batch to batch without scruples. – flakeshake Jun 21 '16 at 9:46
2

This question is strictly off-topic since it is not specific to the Pi.

However the partitioning and file system operate at a higher level than the SD Card. Any wear-levelling, Block Erase, bad block mapping etc are handled by SD Card firmware and mapped to the higher layer. This implies that regardless of the partition size, blocks will be mapped across the whole available.

The higher layers can influence performance. Blocks are erased on a Block-Erase boundary i.e. 4MB (Raspbian does this optimally) but small file erases impact on this, and presumably work more efficiently with more free space.

Theer may be some advantage in using File Systems designed for SD Card (which ext4 is not).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.