SD卡传输速度很慢

我把一些MySQL-DB的东西复制到我的Class 6 SD卡上。 它需要45分钟。 转移。 与XP相同的机器在几分钟内完成,而另一台机器上的Win7也很好。 检查了所有论坛和来源,但发现没有真正相关。

有时,默认的IO调度程序会很难处理这些闪存驱动器。 我发现有用的一个解决方案是将ioscheduler切换到截止日期或仅用于该设备的noop 。 例如,

 $ lsscsi 
 [0:0:0:0]磁盘ATA TOSHIBA THNS128G AGLA / dev / sda
 [1:0:0:0] cd / dvd HL-DT-ST DVDRAM GT30N LT09 / dev / sr0
 [7:0:0:0]磁盘爱国者内存PMAP / dev / sdb
sudo tee /sys/block/sdb/queue/scheduler << EOF deadline EOF 
 $ cat / sys / block / sdb / queue / scheduler
 noop [截止日期] cfq 

现在再次尝试数据传输,您必须加载设备之前执行此操作。

如果这对你有用,可以创建一个udev规则来为所有usb hotplug设备自动设置。 这是我很久以前写的一个有点狡猾的,我相信它只扫描usb热插拔设备,而不是MMC卡,因此你必须检查udev输出以确定你的媒体所在的类并进行相应的调整。

自行承担风险,如果这不起作用,则由您调试

 sudo tee /lib/udev/rules.d/100-usb-scheduler.rules << EOF # custom udev rule: 28.10.11 # adjust io scheduler for usb block devices: queue/scheduler # scheme based on "persistent storage rules" # forward scsi device event to corresponding block device ACTION=="change", SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST=="block", ATTR{block/*/uevent}="change" ACTION!="add|change", GOTO="persistent_storage_end" SUBSYSTEM!="block", GOTO="persistent_storage_end" # skip rules for inappropriate block devices KERNEL=="fd*|mtd*|nbd*|gnbd*|btibm*|dm-*|md*", GOTO="persistent_storage_end" # ignore partitions that span the entire disk TEST=="whole_disk", GOTO="persistent_storage_end" # for partitions import parent information ENV{DEVTYPE}=="partition", IMPORT{parent}="ID_*" # USB storage devices suffer from performance issues unless they use deadline io scehduler KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", \ RUN="/bin/sh -c 'echo deadline > /sys/$env{DEVPATH}/queue/scheduler'" LABEL="persistent_storage_end" EOF 
 $ sudo chmod + x /lib/udev/rules.d/100-usb-scheduler.rules