关于 microSD 卡的容量、性能与可靠性

Lobsters Hottest 论文

摘要

这是一项对各类 microSD 卡(包括假闪存卡)进行的容量、性能与可靠性的持续调研和测试项目,旨在评估其对消费者的价值和质量。

<p><a href="https://lobste.rs/s/yaoves/on_capacity_performance_reliability">评论</a></p>
查看原文
查看缓存全文

缓存时间: 2026/08/19 16:33

# microSD卡的容量、性能与可靠性 来源:https://www.bahjeez.com/the-great-microsd-card-survey/ *或者:2024-2026年15美元以下最佳microSD卡选购指南?* 开始之前: - 支持我的Patreon!(http://patreon.com/MattCole) - 若仅需查看我(当前)的首选推荐,请点击此处 (https://www.bahjeez.com/the-great-microsd-card-survey/#overall-picks)。 - 若想了解测试卡的详细信息,请点击此处 (https://www.bahjeez.com/the-great-microsd-card-survey/results-explorer/)。 - 若需查看原始数据表格,请点击此处 (https://www.bahjeez.com/the-great-microsd-card-survey/all-microsd-card-results/)。 - 若想了解其他支持方式,请点击此处 (https://www.bahjeez.com/the-great-microsd-card-survey/#how-can-i-help)。 - 若对项目背景与研究方法感兴趣,请继续阅读! ## 引言 MicroSD卡如今已无处不在,广泛应用于各类消费设备——包括智能手机、数码相机和单板计算机。尽管该领域仍在持续创新,但市场已基本成熟。当前市场上品牌、型号和容量选择繁多,但除了容量差异外,消费者可能难以察觉不同品牌或型号卡之间的实质区别。这种普及性已推动价格大幅下降,使得能存储数百GB数据的存储卡价格低于一顿普通餐厅的餐费。 如同所有热门产品,市场充斥着假冒伪劣产品。例如,SanDisk或Lexar等主要品牌的1TB microSD卡售价约为70-100美元(具体取决于品牌型号)。然而,在亚马逊简单搜索1TB microSD卡,就能发现价格低至12.99美元的无牌或杂牌存储卡。这些品牌如何能以远低于知名品牌的价格提供产品?许多情况下,这些卡被称为"虚假闪存"——即卡内编程声称具有特定容量,但实际容量远低于标称值。例如,标称1TB的卡实际容量可能仅8GB左右。此类卡的物理存储空间通常位于逻辑地址空间的前端,超出可用空间的数据写入会被直接丢弃,而读取操作通常返回全零值。此外,大多数文件系统会线性填充可用空间。综合来看,用户可能直到用完卡的物理存储空间才会发现问题——此时会发现超出物理空间边界的数据已永久丢失且无法恢复。 但虚假闪存并非完全无用。若能确定实际物理空间,可调整卡的分区表以防止文件系统占用超过物理空间。那么,与"正规"产品相比,这类卡在性能和耐久性方面表现如何?在已知容量限制的前提下,购买虚假闪存是否仍有价值?这正是我希望解答的问题。因此,自2023年7月起,我开始采购各类品牌和容量的microSD卡——涵盖知名品牌与杂牌、真实容量闪存与虚假闪存——并持续进行测试。 本页面将展示迄今获得的测试结果。需注意,这是持续进行的项目——许多已购卡片仍在测试中,另有部分尚未拆封等待测试。 **声明:** 本测试完全自费进行,未获得任何赞助。所用设备和材料均为个人购买。若情况变化将及时更新此声明。 [返回顶部](https://www.bahjeez.com/the-great-microsd-card-survey/#main) ## 评估标准 对于每张采购的卡片,我期望解答以下问题: 1. **真实性:** 卡片标称容量是否属实?是否属于虚假闪存? 2. **性能:** 卡片在读写操作中的表现如何?其性能是否达到卡面或包装标注的速度等级标准? 3. **耐久性:** 卡片在失效前能承受多少次数据写入? [返回顶部](https://www.bahjeez.com/the-great-microsd-card-survey/#main) ### 真实性 在真实性方面,我主要关注卡片是否属于"虚假闪存"。本调查将"虚假闪存"定义为"物理容量小于通过CSD寄存器向主机报告的容量的SD存储介质"。(目前尚未检测容量超过标称值的情况...*暂未发现*。) 次要关注点在于评估卡片是否属于"缩水闪存"。本调查将其定义为"通过CSD寄存器向主机报告的物理容量小于卡体或产品包装印刷容量的任何闪存介质"。容量评估采用线性标准(即1TB=1,000,000,000,000字节,1GB=1,000,000,000字节)。例如,标称32GB的卡是否真正具备至少32,000,000,000字节可用空间?抑或实际仅有约31,500,000,000字节? 为何纳入此项标准?因为它会实质性影响用户体验。缩水现象在知名品牌和杂牌中均存在——某些知名品牌在本调查(现阶段)中表现最差。(同时,另有部分品牌表现最为规范。)举例说明:我测试的两张64GB卡中,Kioxia(2018年东芝闪存部门分拆成立的公司)的实际容量约61.89GB,而Lexar卡容量约64.09GB。两者相差近2.2GB——相当于约18*分钟*的1080p视频(16Mbps码率)。 [返回顶部](https://www.bahjeez.com/the-great-microsd-card-survey/#main) ### 性能 SD协会为SD卡制定了多项性能标准,每项均有相应标识。目前市售的几乎所有SD和microSD卡都带有至少一种速度等级标识。我关注卡片的整体性能表现,同时关注其是否达到包装和卡体标注的速度等级要求。 当前SD协会定义的速率等级包括: - **Class 2、4、6、10:** 规定读写速度分别不低于2MB/秒、4MB/秒、6MB/秒和10MB/秒。卡内定义应用单元(AU)大小,写入性能通过顺序写入单个AU的耗时衡量。(对于SDXC和SDUC卡,性能测试采用单个AU或AU的4MB片段中较小者进行。)读取性能则通过执行256次随机读取操作的耗时衡量。 - **U1和U3:** 规定在UHS-I或UHS-II模式下运行时,读写速度分别不低于10MB/秒和30MB/秒。性能测量方式与Class 2/4/6/10基本相同。 - **视频速率等级V6、V10、V30、V60、V90:** SD卡规范5.0版新增视频速率等级,并引入控制卡操作和设置视频录制模式的新指令。在该模式下,规定写入速度分别不低于6MB/秒、10MB/秒、30MB/秒、60MB/秒和90MB/秒。 - **应用性能等级A1和A2:** 规定每秒最低随机读写操作次数(每次操作4KB大小),以及10MB/秒的最低顺序读写速度。A1等级要求每秒至少1500次读取和500次写入操作,A2等级要求每秒至少4000次读取和2000次写入操作。 实际上,我无法完全按照SD规范执行测试(虽在持续改进中),因此测试设计尽量贴近规范要求。部分卡片性能远超其标注速度等级,而另一些则明显未达标。还有些卡片处于灰色地带,接近但未严格达到某项速度等级标准——在完善测试方法前,我暂不否认它们在特定测试条件下可能符合某速度等级。测试结果将注明此类情况。 [返回顶部](https://www.bahjeez.com/the-great-microsd-card-survey/#main) ### 耐久性 此标准相对简单:若持续向卡片所有可用字节写入数据,其使用寿命有多长?闪存介质通常随写入次数增加而性能下降,因此我不仅关注卡片出现数据错误前的写入次数,更关注其完全失效前的总写入次数。虽然没有统一标准(SD规范似乎未定义),但网络资料显示2000次写入循环是合理预期。具体而言,我将验证卡片能否在至少2000次读写循环中可靠存储数据。闪存并非完美——即使未达2000次也可能出现数据错误——因此对早期随机错误采取一定宽容度,只要错误未在短期内重复出现即可。 ## 测试方法 原计划结合使用f3 (https://github.com/AltraMayor/f3) 和stressdisk (https://github.com/ncw/stressdisk) 进行测试;但发现两者存在不足后,我决定开发整合二者功能的独立工具。源代码已发布于GitHub (https://github.com/mikaey/mfst)。 坦率而言,尽管力求科学严谨,本测试仍存在局限——例如: - 项目进行中持续对工具进行代码修改,不同卡片由不同版本程序(或多个版本)测试。 - 使用了多个不同型号/品牌的SD读卡器(正逐步统一至单一型号)。 - 使用了运行不同Ubuntu版本的PC。 具体测试策略如下所述。 大部分卡片在运行Ubuntu的x86_64 PC上测试(同时包含运行Armbian的ARM单板计算机)。SD卡通过USB连接至读卡器。使用`O_DIRECT`和`O_SYNC`标志打开设备以最小化系统缓存影响。 [返回顶部](https://www.bahjeez.com/the-great-microsd-card-survey/#main) ### 真实性测试 将卡的逻辑空间(不含保护区)划分为八个等分或近似等分的片段。每个片段长度通过卡的总扇区数除以八计算得出。(注:Linux系统始终按512字节/扇区计算,与设备物理扇区大小无关。)随后在每个片段选取起始扇区: - 第一片段始终从扇区0开始。 - 最后片段选取距设备末尾不超过8MB的随机起始扇区。(**注:** 本测试中1MB=1,048,576字节。) - 其余片段选取距片段末尾不超过4MB的随机起始扇区。 接下来生成九个4MB的随机数据块并存于内存中。(选择此数量旨在确保至少超过任何SD卡可预见缓存大小的两倍。)从各起始扇区开始,以线性方式将每个数据块写入卡片。最后4MB从逻辑地址空间末尾前4MB处开始线性写入。(**2024年3月13日更新:** 后修改为逆序写入数据块——即从最后一个数据块开始向前写入。但每个数据块内部仍保持顺序写入。)每个数据块写入后读回并与原始数据比对。若所有九个数据块均匹配,则卡被认定为"真实"——即物理空间与CSD寄存器报告容量相符(或可能超过)。若首个数据块不匹配,则认定为不可用并终止测试。否则判定为"虚假闪存"。随后将逻辑空间对半分割,生成并写入4MB新随机数据至新窗口中心扇区,读回比对。重复此过程直至确定物理空间范围。 需说明该算法存在缺陷——曾遇到标称512GB(实际约32GB)的虚假闪存被误判为256GB。此类情况将通过首次耐久性测试结果确定实际物理空间边界。 [返回顶部](https://www.bahjeez.com/the-great-microsd-card-survey/#main) ### 性能测试 性能测试分为两部分:顺序I/O测试和随机I/O测试。每部分包含读取测试和写入测试。先执行读取测试,再执行写入测试。读取操作不进行数据一致性校验。使用USB3.0读卡器确保USB总线不构成瓶颈。 顺序I/O测试中,持续读写设备30秒。数据读写块大小为逻辑扇区大小(512字节)乘以每次请求最大扇区数(通过`BLKSECTGET`ioctl调用获取)。30秒后,将总数据量除以实际耗时(微秒精度)计算出顺序数据速率。 随机I/O测试中,同样持续读写设备30秒。每次读写操作

相似文章

Tencent-HY3 在 128GB 上果然厉害!

Reddit r/LocalLLaMA

用户分享了在 MacBook M5 Max 128GB 配置上运行腾讯新款 295B-A21B MoE 模型 HY3 的体验,相较于 DeepSeek v4 Flash,取得了令人印象深刻的性能和质量提升。