Maximizing SD Card Life, Performance, and Monitoring with KrillKounter
summary
Shows measured endurance and failure modes for consumer SD cards using a Raspberry Pi cluster and fio at the block layer, finding a 21 TBW estimate but an actual ~40 TB written for a 512k sequential test, and worst-case write amplification of ~9x for tiny writes; records CRCs, -110 timeouts and cards becoming silently read‑only. Recommends use larger cards or spare unpartitioned space, enable discard/TRIM, increase filesystem cluster size, tune mq-deadline/io scheduler, measure via /proc/diskstats and blktrace, and run the open‑source monitor KrillKounter.
AI-written summary · about
chapters (23)
- 0:00SD card reliability issues
- 1:24SD card construction
- 3:13NAND flash fundamentals
- 6:45Floating gate transistors
- 10:16NAND write amplification
- 13:47NAND flash degradation
- 15:33Wear leveling for lifespan
- 17:20Controller firmware limits
- 18:23Endurance testing setup
- 21:16Endurance test results
- 23:40How SD cards fail
- 25:47Key endurance findings
- 27:13Optimizing SD usage
- 31:02Reducing write amplification
- 32:28Performance bottlenecks
- 33:33Evaluating SD classes
- 35:41Introducing KrillKounter
- 36:44Key takeaways
- 37:13Q&A session part one
- 39:06Q&A session part two
- 41:00Q&A session part three
- 43:28Q&A session part four
- 45:52Closing remarks
related talks
40mBenchmarking: Repeatable & Comparable
30mSSD and HDD Performance Testing
15mYears of Wear in Minutes: Benchmarking Aged Filesystems
47mExploring Linux Memory Usage and IO Performance in Cloud Native Applications
29mModernizing Resource Management in Embedded Systems Using eBPF
40mInspecting and Optimizing Memory Usage in Linux
04mLightning Talk - Benchmarking Persistent Data Volumes
22mHigh Bandwidth Sensors
