SD Card Transfer очень медленный

Я скопировал кое-что из MySQL-DB на мою SD-карту класса 6. Требовалось 45 минут. для передачи. Та же машина с XP делает это за несколько минут, с Win7 на другую машину перенос тоже подойдет. Проверил все форумы и источники, но не нашел ничего действительно связанного.

5
задан 8 March 2016 в 20:48

1 ответ

Иногда планировщик IO по умолчанию рассматривает эти флеш-накопители плохо. Одно решение, которое я нашел, чтобы быть полезным, состоит в том, чтобы переключить ioscheduler на крайний срок или noop для просто того устройства. Так, например,

$ lsscsi 
[0:0:0:0]    disk    ATA      TOSHIBA THNS128G AGLA  /dev/sda
[1:0:0:0]    cd/dvd  HL-DT-ST DVDRAM GT30N     LT09  /dev/sr0
[7:0:0:0]    disk             Patriot Memory   PMAP  /dev/sdb
sudo tee /sys/block/sdb/queue/scheduler << EOF
deadline
EOF
$ cat /sys/block/sdb/queue/scheduler
noop [deadline] cfq 

и теперь попробуйте свою передачу данных снова, необходимо сделать это перед загрузкой устройства.

Если та работа для Вас правило udev может быть создана для автоматической установки этого для всех устройств замены в горячем режиме usb. Вот тот, который я записал давным-давно, что это является немного неработоспособным, я полагаю, что он только сканирует для устройств замены в горячем режиме 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
3
ответ дан 8 March 2016 в 20:48

Другие вопросы по тегам:

Похожие вопросы: