SD卡的写入速度似乎比读取速度慢14倍


11

我今天晚上正在从Mac Book Air内部读卡器写入SD卡,报告的性能为1.4 MB /秒。后来我阅读了在Raspberry Pi上对其进行的测试,并获得了20 MB /秒的速度。这是6级卡片,这些数字听起来都不现实!

我正在使用dd我的测试。在两台计算机上进行读写相同测试的结果:

Raspberry Pi:读取20 MB /秒。每秒写入11 MB ...
空中:每秒读取3 MB。写入1.4 MB /秒

使用以下命令:

编写测试:

sudo dd if=/dev/zero of=/dev/mmcblk0p3 bs=1M count=400

阅读测试:

sudo dd of=/dev/null if=/dev/mmcblk0p3 bs=1M count=400

这表明感知到的异常实际上是集成的Mac Book Air SD卡阅读器的糟糕表现!这会使图像创建非常缓慢。


Sandisk声称6类卡的读取速度为20MBps,而Kingston声称6类卡的读取速度为15MBps。我不知道Mac Book是否具有集成的SD卡读取器。但是对于外部(USB 2.0)版本,SD卡读取器的质量(所使用的芯片等)对整体性能也很重要。但是,使用这些设备进行读取总是比写入更快。
ikku 2012年

谢谢。它是集成的。相当不错的读取性能。写入性能确实很差。
ScrollerBlaster 2012年

Answers:


6

SD卡速度等级额定值指定卡在记录视频时应具有的最低读写性能。类号是使用该卡时应获得的最低速度限制,以MB / s为单位。

但是请记住,从卡中读取通常比写入要简单得多(因此更快)。这就是为什么通常的6类卡将具有6MB / s的写入速度和15-20 MB / s的读取速度(但仅保证6MB / s的速度)的原因。

读写速度不仅受卡的限制,而且受硬件和软件等许多不同因素的限制。特别是它可能会受到读卡器/写卡器某些问题的限制。

因此,根据您的情况,您的卡似乎在Mac Book Air上的性能确实很差,而在RaspberryPi上却具有适当的(逼真的)性能。但是,我们不能确定,因为您在Mac Book上测试了写入速度,在RaspberryPi 上测试了读取速度,所以正如我前面提到的那样,它们不可比。由于您未指定如何测试这些速度,因此也很难评论为什么会得到这样的结果。


我需要在两个平台上测试读写。我正在使用dd
ScrollerBlaster 2012年

@ScrollerBlaster:您无法比较读写速度。类似地,当测试几乎任何东西时,一个好的经验法则是一次只更改一件事。但是您更改了设置中的所有内容(操作系统,主机,读卡器),但只更改了一件东西(SD卡),因此不会给您带来有意义的结果。
2012年

我已经说过,我将在同一操作系统上比较读写。您对这种方法有疑问吗?
ScrollerBlaster 2012年

@ScrollerBlaster:不,完全没有。我只是想通过说它们与我的回答没有可比性来弄清楚我的意思。请记住,这个答案不仅适用于您,而且适用于将来可能会遇到类似问题的所有其他人,因此,我尝试使建议尽可能通用。
Krzysztof Adamski

当您在帖子中指出我的测试没有比较苹果和橙子时,这是非常正确的一点。在我的第一条评论中,我说过我将重做测试,这意味着我将在两个平台上重做读写。此后,您以后对我的建议就没有必要了。展望未来,关于空气与PI的任何结论仍为时过早。鉴于这是一个PI论坛,所以最相关的测试将是对PI的读写测试。如果您有dd执行安全写测试的命令,我将使用它们!
ScrollerBlaster 2012年

10

为了从MacBook的SD插槽中获得最佳速度,您需要使用“原始磁盘”设备。

这是SanDisk Ultra Class 10卡:

~/Desktop/rpi $ sudo dd if=2012-12-16-wheezy-raspbian.img of=/dev/disk1 bs=8m
231+1 records in
231+1 records out
1939865600 bytes transferred in 1076.078932 secs (1802717 bytes/sec)

将此与使用/dev/rdisk1代替/dev/disk1

~/Desktop/rpi $ sudo dd if=2012-12-16-wheezy-raspbian.img of=/dev/rdisk1 bs=1m
1850+0 records in
1850+0 records out
1939865600 bytes transferred in 129.712100 secs (14955163 bytes/sec)

1.8MB / s相比14.9MB / s-几乎提高了10倍


disk和rdisk有什么区别?
valentt

“它们比缓冲区高速缓存更靠近物理磁盘。另一方面,/ dev / disk节点是缓冲的块专用设备,主要由内核的文件系统代码使用。” -检查hidutil手册页以获取更多信息。
Bert

1
这可能会引起误解,因为两次测试之间的块大小发生了变化。
尼克,

FWIW:我将块大小更改为1m,使用设备/ dev / rdisk1将10级卡的写入速度从〜1.75MB / sec更改为〜11.4MB / sec。
Gardner Bickford 2014年

我可以确认这一点-使用rdisk2时,为我的RPi SD卡写入图像的速度快20倍。我为此保持块大小不变(4m)。使用/ dev / disk2,gdd的写入速度为197 kB / s。使用/ dev / rdisk2,它的写入速度为10.6 MB / s
judepereira

1

您还可以使用以下命令进行基准测试,而不会影响加载到RAM的缓存的影响:

读取速度基准:$ sudo dd if = / dev / sdX1 of = / dev / zero bs = 1M count = 400 iflag = direct

写入速度基准:$ sudo dd if = / dev / zero of = / dev / sdX1 bs = 1M count = 400 skip = 1000 oflag = direct

确保分别在执行写入和读取基准测试时始终使用oflag = direct和iflag = direct,否则您冒着获得实际上是文件缓存写入和读取时间的结果的风险。


0

在运行OSX 10.11.5的2015 MBP上,使用dd时获得以下写入速度:

写入/ dev / disk时:1.80 MB / s写入/ dev / rdisk时:12.80 MB / s

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.