如何在MacBook Pro上加快SD卡的写入速度(使用/ dev / disk *)?


17

我已经在MacBook的SD卡上安装了一些Linux发行版,尽管它们需要一个多小时才能传输数百MB(使用dd/dev/disk1)。

dd输出

如果您看上面的输出,它的工作速度约为0.31 MB / s!SD卡是Class 10,我的MacBook Pro是2.66 GHz Intel Core 2 Duo,4 GB 1067 MHz DDR3和OS X Lion 10.7.4。这是读卡器的硬件报告:

内置SD卡读卡器:

供应商ID:0x05ac
产品ID:0x8403
修订版:1.00序列号:9833

SDHC卡:

容量:7.97 GB(7,969,177,600字节)
可移动媒体:是BSD名称:disk1
分区映射类型:MBR(主引导记录)
SMART状态:不支持的
卷:

PI:
容量:7.96 GB(7,964,983,296字节)
文件系统:MS-DOS
BSD名称:disk1s1
内容:DOS_FAT_32

有什么想法为什么转移到/dev/disk1这么慢,我如何加快速度?


在我看来,这是一个硬件问题。我听说2011 MBP的SD读卡器性能较差,但较早的MBP可能也是一个问题。尝试使用另一张SD卡,但这很可能是读卡器的问题,不幸的是,该读卡器已连接到大多数MBP的逻辑板上。
robmathers 2012年

我在2009年购买了笔记本电脑,Fedora现在已经复印了2个小时,我已经放弃了。我认为新读卡器的时间。
斯图

有趣的是,如果您使用Finder或Disk-Utility,则顺序数据速率会更高,因为罪魁祸首似乎是/ dev / disk *的缓冲,如@pci 的回答
iolsmit 2013年

Answers:


38

只是遇到了同样的问题,似乎/dev/disk*很慢,因为它被缓冲了。如果使用相应的rdisk设备(例如:)/dev/rdisk1s1,则应获得所需的速度。这显然是BSD的事情。

例:

% sudo dd if=pi.bin of=/dev/disk1 bs=1m count=4095
^C408+0 records in
407+0 records out
426770432 bytes transferred in 1393.452305 secs (306268 bytes/sec)

% sudo dd if=pi.bin of=/dev/rdisk1 bs=1m count=4095
4095+0 records in
4095+0 records out
4293918720 bytes transferred in 378.669512 secs (11339489 bytes/sec)

参考:


1
这是我能够确认结果的最佳答案。从
〜1.35

1
对于Apple / BSD,这当然是一个耻辱-尽管使用dd可以为您提供最佳的性能,因为您具有长的写入(或读取)访问权限。在文件级别以及具有随机访问权限的情况下,根据SD卡的不同,您的性能也会相差很大-而且:@pci非常好!
iolsmit

2
这是一个漫长的故事,但如果我不及时修理吸烟者,您就为我节省了价值90美元的鲑鱼,这将使情况恶化。
deweydb

3
有点可笑的是,您如何以20 + Mbps的速度下载文件超过数千公里,而最后几米是无线的。但是,通过硬连接将数据传输几厘米要慢得多。
乔纳森。

谢谢。当我决定不可接受并发现此答案时,我正在寻找在大约10个小时内复制7GB数据的方法-非常有帮助。
巴拉克

3

SD卡可能很慢。

看看这个基准测试(随机写入,4 KB(QD = 1)[MB / s]),您会看到大多数SD卡对于小文件都具有糟糕的写入性能(低于100 kB / s)-并且典型的linux安装包括许多写入磁盘的小文件。

内部读卡器应该能够以至少20 MB / s的速度读/写-另一个读卡器不太可能会改善这种SD卡的使用体验。

写入所有文件后,即安装了系统,实际上,您实际上可以从SD卡以可接受的速度运行Linux,因为它主要是读取权限。


1
对于
不愿

这将是一个很好的尝试,虽然以测试已知是良好的另一位读者卡,并测试已知的涉嫌读者好卡。还要注意,对于许多小文件而言,在文件系统数据结构中用于创建新文件(而不是写入其内容)的所有“文书工作”非常大。
托尔比约恩Ravn的安德森

尽管SD卡不是很快,但对于当今的SD卡来说,速度(328198字节/秒,后来的288881字节/秒)是无法想象的(感觉更像是软盘驱动器)。由于这是“ dd”,因此意味着一个文件-而不是多个小文件。
巴拉克(Barak)2015年

1

如果卡上装有sync选项,则意味着每个文件关闭都会导致写入操作刷新到磁盘,因此与大文件相比,在小文件上的性能会很差。如果您从挂载选项中删除同步,则无法保证写入文件会导致该文件进入磁盘-您必须从命令行手动调用同步,或者在删除或关闭电源之前先卸载设备。但是,如果没有同步,您应该会看到小文件的写入性能大大提高。


1
根据man mount,async已经是默认值。
nohillside

1

不,这显然是Mac OS的问题。当我在同一台Macintosh上运行的虚拟机上使用Linux进行相同的操作时,我的性能将大大提高。即,VM比本地OS快5倍。

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.