Медленная передача данных через USB при прямом подключении к устройству

Медленная передача данных через USB при прямом подключении к устройству

Еще одна проблема с медленной передачей. У меня недавно купленный диск SanDisk USB 3.0. На ноутбуке есть только USB 2.0, но я получаю скорость передачи ~2 МБ/с постоянно.

Я переношу .imgна диск:

dd if=my.img of=/dev/sdb status=progress

Оба варианта iostatпоказывают постоянную скорость 2 МБ/с.

kern.log при подключении выдает:

usb 2-1.2: new high-speed USB device number 6 using ehci-pci
usb 2-1.2: New USB device found, idVendor-0781, idProduct=5583
usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 2-1.2: Product: Ultra Fit
usb 2-1.2: Manufacturer: SanDisk
usb 2-1.2: SerialNumber: 4C53....
usb-storage 2-1.2:1.0: USB Mass Storage device detected
scsi host7: usb-storage 2-1.2:1.0
scsi 7:0:0:0 Direct-Access SanDisk Ultra Fit 1.00 PQ: 0 ANSI: 6
sd 7:0:0:0 Attached scsi generic sg2 type 0
sd 7:0:0:0 [sdb] 30031250 512-byte logical blocks: (15.4 GB/14.3GiB)
sd 7:0:0:0 [sdb] Write Protect is off
sd 7:0:0:0 [sdb] Mode Sense: 43 00 00 00
sd 7:0:0:0 [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
sd 7:0:0:0 [sdb] Attached SCSI removable disk

Соответствующая часть lsusb -tвывода:

/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver-ehci-pci/3p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
        |__ Port 2: Dev 6, If 0, Class=Mass Storage, Driver=usb-storage, 480M

Работает на сервере Ubuntu 16.04 LTS на Dell 6320.

Чтобы добавить драйверы:

# lsmod | grep pci
pci_stub       16384 1
vboxpci        24576 0
vboxdrv       454656 3 vboxnetadp,vboxnetflt,vboxpci
sdhci_pci      28672 0
sdhci          45056 1 sdhci_pci

# lsmod | grep hci
ahci           36864 4
sdhci_pci      28672 0
hibachi        32768 1
sdhci          45056 1 sdhci_pci

решение1

Вам просто следует увеличить размер блока dd. По умолчанию это 1 отдельный байт, но вы можете значительно ускорить процесс, передавая большие блоки данных за раз. Ответственный параметр называется bs.

Вы можете немного поэкспериментировать с оптимальными значениями, но что-то около 4 КБ (4096 байт) должно быть приемлемым. Некоторые источники также рекомендуют большие размеры блоков, например, 32 КБ, 64 КБ или даже 128 КБ. Оптимальное значение сильно зависит от физической структуры целевого диска и может быть найдено практически только экспериментальным путем. Вы можете считать 4 КБ нижней границей, меньшие размеры блоков обычно намного медленнее.

Более подробную информацию об оптимальных размерах блоков ddможно найти вэтот связанный вопрос по Unix и Linux.

dd if=my.img of=/dev/sdb bs=4096 status=progress

Связанный контент