Копировать на флешку очень медленно?

Когда я копирую файлы на устройство USB, это занимает гораздо больше времени, чем в Windows (то же устройство USB, тот же порт), это быстрее, чем скорости USB 1.0 (1 МБ / с), но намного медленнее, чем скорости USB 2.0 (12 МБ / с) , Для копирования 1,8 ГБ у меня уходит более 10 минут (это должно быть < 3 мин.) У меня есть две идентичные флешки SanDisk Cruzer 8 ГБ, и у меня одна и та же проблема с обоими. У меня есть супер талантливый 32 ГБ USB SSD в соседнем порту, и он работает с ожидаемой скоростью.

Проблема, которую я вижу в графическом интерфейсе, заключается в том, что индикатор выполнения почти мгновенно достигает 90%, немного медленнее завершает работу до 100% и затем зависает там в течение 10 минут. Прерывание копирования в этот момент может привести к повреждению в конце файла. Если я подожду, пока копия завершится успешно,

Есть идеи? вывод dmesg ниже:

[64059.432309] usb 2-1.2: new high-speed USB device number 5 using ehci_hcd
[64059.526419] scsi8 : usb-storage 2-1.2:1.0
[64060.529071] scsi 8:0:0:0: Direct-Access     SanDisk  Cruzer           1.14 PQ: 0 ANSI: 2
[64060.530834] sd 8:0:0:0: Attached scsi generic sg4 type 0
[64060.531925] sd 8:0:0:0: [sdd] 15633408 512-byte logical blocks: (8.00 GB/7.45 GiB)
[64060.533419] sd 8:0:0:0: [sdd] Write Protect is off
[64060.533428] sd 8:0:0:0: [sdd] Mode Sense: 03 00 00 00
[64060.534319] sd 8:0:0:0: [sdd] No Caching mode page present
[64060.534327] sd 8:0:0:0: [sdd] Assuming drive cache: write through
[64060.537988] sd 8:0:0:0: [sdd] No Caching mode page present
[64060.537995] sd 8:0:0:0: [sdd] Assuming drive cache: write through
[64060.541290]  sdd: sdd1
[64060.544617] sd 8:0:0:0: [sdd] No Caching mode page present
[64060.544619] sd 8:0:0:0: [sdd] Assuming drive cache: write through
[64060.544621] sd 8:0:0:0: [sdd] Attached SCSI removable disk
60
задан 15 April 2012 в 01:46

11 ответов

Почему копируется на мой USB-накопитель, так что работает медленно в Linux (и быстрее в Windows)?

Причина 1. Кэширование файлов может сделать запись медленнее или быстрее

Проблема, которую я вижу в графическом интерфейсе пользователя, заключается в том, что индикатор выполнения переходит в 90% почти мгновенно, завершается до 100% немного медленнее, а затем зависает в течение 10 минут.

Одна вещь, которую вам нужно понять, - это кеширование файлов. Linux (и Windows) будет использовать «пустую» оперативную память для кэширования операций чтения / записи и ускорения их при последующих обращениях. Кэширование операций копирования на медленные устройства приводит к тому поведению, которое вы видите - «быстрое завершение» на самом деле записывает в кеш, а затем замедляется и останавливается, потому что фактический сброс данных в кеш (синхронизация) на медленное устройство занимает очень много времени. Если вы прерветесь на этом этапе, данные будут повреждены (как вы отметили), поскольку синхронизация никогда не завершалась.

Такое копирование в Windows может показаться более быстрым (включая заявленные скорости в МБ / с)потому что иногда Windows не будет ждать синхронизации и объявлять задание завершенным, как только данные будут записаны в кэш.

Причина 2. Запись большого количества файлов, особенно небольших, выполняется медленно

Для копирования 1,8 ГБ

Из-за особенностей работы флеш-памяти и файловых систем максимальная пропускная способность (скорость) достигается при записи очень больших файлов. Запись большого количества маленьких файлов или даже смешанных данных, содержащих несколько маленьких файлов, может сильно замедлить процесс. Это также влияет на жесткие диски, но в несколько меньшей степени.

Причина 3. Невозможно сравнивать скорости записи USB-накопителя и SSD

У меня есть супер-талантливый 32-гигабайтный USB-SSD в соседнем порту, и он работает на ожидаемые скорости.

  • USB-накопитель типа «садовый» обычно состоит из микросхем флэш-памяти, которые записываются последовательно (последовательно) и не имеют собственной кэш-памяти.

  • SSD, с другой стороны, содержит контроллер, который записывает на микросхемы флэш-памяти параллельно , увеличивая пропускную способность в 2 раза или более по сравнению с USB-накопителем.

    • Если у вас 32 ГБ У SSD было 4 чипа по 8 ГБ, он все равно был бы в 4 раза быстрее, чем USB-накопитель при любой операции записи.
    • SSD также содержит кэш ОЗУ (например, жесткие диски), поэтому он может быстро хранить входящие данные в кэш и сообщить ОС, что это сделано, хотя ей еще нужно записать эти данные во флеш-память.
  • Итак, с одним большим файлом ваши 32 ГБ с предполагаемой структурой 4x будут в 4 раза быстрее; со многими небольшими файлами он будет в 10 раз или более быстрее, потому что он может разумно хранить их в своем кэше.


Подводя итог , это причины, по которым копирование файлов на USB-накопители может казаться медленнее в Linux. Действительно ли он медленнее из-за проблем с оборудованием / драйверами или чем-то еще ...

Проведение надлежащего сравнения скоростей записи между Linux и Windows

  • Прежде всего, забудьте о SSD по причине 3. Это похоже на апельсины и яблоки.
  • Чтобы свести на нет влияние причины 1 (кеширование) и причины 2 (маленькие файлы), вам нужно протестировать с одним большим файлом, размер которого превышает объем ОЗУ в тестовой системе.
  • В Linux вы можете создать его с помощью dd if = / dev / urandom of = largetest bs = 1M count = 7500 , что дает вам тестовый файл размером 7500 МБ. Предполагая, что ваша система имеет менее 4 ГБ ОЗУ, этого достаточно. Скопируйте его на недавно отформатированную карту Sandisk 8 ГБ и установите время.
  • Перезагрузитесь в Windows и скопируйте largetest с USB-накопителя на жесткий диск. Перезагрузите снова (чтобы удалить из кеша). Затем отформатируйте USB-накопитель (тот же vfat / FAT32!) И скопируйте largetest с жесткого диска на карту.
  • Как сравнить время?
32
ответ дан 15 April 2012 в 01:46

Я думаю, что вероятность того, что это проблема порта, очень мала. Скорее всего, это проблема с LINUX (или конфигурацией Linux) - погуглите, и вы найдете тысячи отчетов о проблемах с медленным USB в linux / ubuntu. Для меня это почти стоппер для Linux - теперь у меня есть Ubuntu 12.04 LTS, и эта проблема все еще есть (поэтому я предпочитаю использовать настройку Win7 - в основном / только из-за этого). Эта проблема (или что-то с похожими симптомами) существует уже несколько лет и, по-видимому, не исправлена. И за это время я попробовал несколько физических ПК с несколькими разными версиями ubuntu (конфигурация по умолчанию) и 2-3 разными USB-накопителями ....

7
ответ дан 15 April 2012 в 01:46

Если вы переключитесь на USB 3.0, вы перейдете с 1 МБ / с на скорость передачи 5-8 МБ / с. Я переключаюсь на 3.0 USB pci и внешний HD и не оглядываюсь назад.

1
ответ дан 15 April 2012 в 01:46

У меня тоже была эта проблема, но я использую команду cp, и вы обновляете USB-накопитель за секунды;

cp -r -u /home/user/Muziek/ /media/user/Audiousbsti
cp -r -u /home/user/Muziek/ /media/user/4F49-4A65/

Я думаю, что это очень поздний ответ, но он все еще открыт.

-2
ответ дан 15 April 2012 в 01:46

Когда вы смотрите в / etc / mtab, видите ли вы, что устройство было установлен с опцией "flush"?

Если да, то это могло быть причиной проблемы (это было для меня). Просто отключите устройство и снова подключите его, оно не должно быть установлено по умолчанию.

1
ответ дан 15 April 2012 в 01:46

Хорошо, у меня была одна и та же проблема в течение трех дней, и как мне удалось сделать резервную копию моего 1 ТБ жесткий диск использовался с помощью rsync, я знаю, что он используется для резервного копирования, но он выполнил свою работу, даже при передаче больших файлов я использую его для этой работы. Если вы хотите использовать его с графическим интерфейсом, я предлагаю установить Grsync, который является графической версией rsync, поскольку rsync работает на терминале.

Надеюсь, это помогло

-3
ответ дан 15 April 2012 в 01:46

Просто размонтируйте устройство, если оно уже установлено автоматически, и вручную смонтируйте его в / mnt / foldername .

В моем случае,

umount /media/usb0
mount /dev/sdb1 /mnt/sam

После этого он очень быстро справляется.

5
ответ дан 15 April 2012 в 01:46

У меня тоже были проблемы со скоростью передачи данных на внешнем диске WD, после открытия в windows SO я всегда использовал LINUX, после этого скорость передачи данных была примерно 1.5 Мб/с, чем при размонтировании внешнего жесткого диска запускался dmesg, там говорилось, что sdb1 его непорядочно размонтировали, запустили fsck, сделали несколько поправлений и после этого снова скорость передачи данных 20 Мб/с при копировании с sda на внешний диск. fsck всегда рискованно, если у вас есть данные, но это работало на меня, без потери данных.

0
ответ дан 15 April 2012 в 01:46

Нашел исправление, все, что я сделал, - это отключил, удалил диск и запустил sudo modprobe ehci_hcd в Терминале. Вставьте диск и agian sudo modprobe ehci_hcd , когда я вставил диск и вау 20 / мб, думал поделюсь. Надеюсь, мне не придется делать это каждый раз ... но это несложно ...

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/177235 говорит, что они исправили ошибку.

9
ответ дан 15 April 2012 в 01:46

Сейчас 2019 год, и у меня все еще та же проблема. Итак, я решил, что ищу решение в Интернете. Я нашел следующую страницу, которая предлагает один: https://gist.github.com/2E0PGS/f63544f8abe69acc5caaa54f56efe52f

Там написано:

Выполните следующие команды в консоли, чтобы увидеть, решит ли это проблему для вас . Вам может потребоваться sudo su , чтобы получить необходимое разрешение.

echo $((16*1024*1024)) > /proc/sys/vm/dirty_background_bytes
echo $((48*1024*1024)) > /proc/sys/vm/dirty_bytes

Если это сработает, вы можете сделать это изменение постоянным после перезагрузки, вставив две строки в конец вашего / etc / rc .local файл.

Для меня это имело следующий эффект:

Предварительное копирование больших файлов на USB-накопитель начиналось очень быстро (например, 60 МБ / с) и становилось все медленнее и медленнее (<10 МБ / s), пока не стало казаться, что он никогда не закончится.

Теперь он начинается медленнее, но становится все быстрее и быстрее и заканчивается раньше, чем раньше. Так что, похоже, это «решает» проблему или, по крайней мере, дает положительный эффект.

7
ответ дан 22 November 2019 в 23:58

Это старый вопрос. Также у меня была такая же проблема долгое время. Недавно я нашел решение здесь . Я сделал следующее:

Переформатировал USB с FAT на NTFS .

0
ответ дан 5 January 2021 в 23:43

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

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