我买了一张新 SD 卡,声称的性能与我的基准相差甚远。在使用这张 SD 卡时,我可以做些什么来提高传输速度?
磁盘信息:
$ df --output=source,fstype,size,target -h
Filesystem Type Size Mounted on
/dev/mmcblk0p1 fuseblk 60G /media/drew/6564-6433
Partition type: HPFS/NTFS
Contents: exFAT (version 1.0)
该卡的包装上声称:
速度高达 30 MB/s* (200X)
按照星号操作可以到达:
传输速度高达 30MB/s;写入速度较低。基于内部测试;性能可能因主机设备而异。1MP = 1,000,000 字节。X = 150KB/s。
我的机器一开始无法识别卡的格式,所以我安装了exfat-fuse
该包,并且在下一次尝试时它就成功了。
然后我运行了一个基准测试使用gnome-disks
:
如您所见,平均读取速度为 7.1 MB/s,与 30 MB/s 相差甚远。慢了 4.2 倍(23%)。
使用这张 SD 卡时我可以做些什么来提高传输速度?
编辑hdparam
根据评论的要求输出:
$ sudo hdparm -tT /dev/mmcblk0
/dev/mmcblk0:
Timing cached reads: 12186 MB in 1.99 seconds = 6111.71 MB/sec
Timing buffered disk reads: 34 MB in 3.17 seconds = 10.73 MB/sec
我在一台空闲的机器上执行了四次该操作,每次运行的结果是一致的。
第一个数字(6GB/s)描述为:
无需访问磁盘即可直接从 Linux 缓冲区缓存读取的速度。此测量本质上是测试系统的处理器、缓存和内存的吞吐量指标。
第二个数字(10 MB/s)描述为:
这显示了在没有任何预先缓存数据的情况下通过缓冲区缓存读取磁盘的速度。此测量表明驱动器在 Linux 下能够以多快的速度维持连续数据读取,而无需任何文件系统开销。
因此,10 MB/s 可能是不同类型负载的吞吐量,或者可能只是较短时间的吞吐量(在我截取屏幕截图之前,上面的不完整图表运行了大约 5 分钟。)无论哪种方式,它仍然没有接近 30 MB/s!