我得到了新的 SD 卡,声称具有 10 级速度,但测试后 Linux 中的内部磁盘实用程序仅显示 6 级速度。如何检查读卡器速度以确保不是设备的限制,而是卡的限制?
我没有任何经过批准的 SD 卡来执行测试。
我的读卡器在 lspci 中显示如下:
0000:07:00.0 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 IEEE 1394 Controller (rev 05)
0000:07:00.1 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 22)
0000:07:00.2 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 12)
0000:07:00.3 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev 12)
答案1
使用磁盘测试内置读卡器的速度
为了通过内部读卡器找到最大吞吐量,其他组件必须更快(读卡器两侧的读/写过程,特别是卡。我认为真实的卡速度[可能有所不同从标称速度]只能在具有读卡器的系统中进行验证,这不是瓶颈(例如通过 USB 3 的适配器)。
我们可以预期,一个好的 USB 3 适配器至少与测试中使用的存储卡一样快。我们还可以预期内部 HDD 或 SSD 比卡更快。因此,卡和 USB 3 适配器比内置读卡器更快就足够了,以便测试(内置读卡器)读取和/或写入的速度。
一个好的测试程序包括刷新缓冲区。让我们依靠磁盘别名
gnome-disks
并简单地使用运行它- 内部读卡器
通过计算机上的 USB 3 端口使用 USB 3 适配器
请记住勾选该框以测试写作。
如果使用内部读卡器花费的时间较长,则可以断定它就是瓶颈。
一般性讨论,包括测试其他硬件
非常重要的是,您不仅要测试例如dd
或 的输出是什么pv
,而且还应该测量读取或写入命令的时间,包括刷新缓冲区。以下方法应该适用于linux,
time ( read or write command ; sync )
然后将写入的数据量除以“真实”时间即可得到真实速度。
测试单个大文件和“许多小文件”的读/写是一个好主意。 (写入“许多小文件”通常比写入单个大文件(以 MB/s 为单位)慢得多)。
您可以使用一些标准测试或为您的特定用例设计一个测试,这可能会以与标准测试不同的方式对硬件和软件组合进行排名。
对于写入测试,重要的是读取或创建输入不是瓶颈。另一种选择是在实时系统中运行并使用 RAM 中的数据。对于读取测试,您可以写入/dev/null
.
要找到瓶颈,您可以尝试不同的方法
- 卡(不同标称速度)
- 适配器
- USB 端口或内置卡槽
- 电脑
- 操作系统