Почему скорость моей флешки замедляется при копировании?

27

После нескольких минут копирования он становится все медленнее и медленнее. Зачем?

Например, он начинается с 20 МБ / с, а когда он заканчивается, это @ 10 МБ / с.

Различные файлы, большие, маленькие и т. Д.

ОБНОВЛЕНИЕ: вопрос касается различных операционных систем, поэтому это "общий вопрос"

LanceBaynes
источник
Сколько вы копируете по сравнению с тем, сколько свободной памяти у вас на компьютере?
Котро
ПК -> USB-флэш-накопитель: несколько сотен гигабайт свободно -> несколько гигабайт свободно
LanceBaynes
1
Я подозреваю, что файлы сначала кэшируются в памяти, поэтому они быстро передаются, а затем, как только они начинают перемещаться с жесткого диска, он замедляется. Я не могу быть уверен в вашем случае, хотя.
Котро
так что вы советуете мне чаще использовать команду "sync"?
LanceBaynes
Я не понимаю, что вы подразумеваете под командой синхронизации. Вы не дали контекста к вопросу. Я даже не уверен, какая ОС.
Котро

Ответы:

25

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

20 Мбит / с, которые вы видите, - это данные, записываемые в кэш диска (обычно быстрая, но небольшая память). Как только этот кеш заполнен, он должен быть сброшен на диск - и теперь у вас более узкий диск.

Пример 1: Эффект действительно ярко выражен, если у вас есть контроллер с большим кешем (например, хороший контроллер RAID5), где ~ 500 МБ данных можно быстро кэшировать, прежде чем они будут записаны на диск.

Пример 2: Вы можете увидеть кеш при воспроизведении, если вы одновременно извлекаете флешку, когда копия файла «закончена». В этот момент ваш файл распределяется между диском и кешем, поэтому копирование «завершено» в отношении операционной системы, но контроллеру диска все равно необходимо записать то, что осталось в кеше, на диск. Если вы вставите флешку обратно и осмотрите файл, вы увидите, что там не все.

Отказ от ответственности: эти примеры не будут работать, если у вас не включено кэширование записи в вашей операционной системе / на диске.

Кроме того, если это не кеширование диска на работе, вероятно, то, что вы видите, является эффектом фрагментации. По мере того, как диск становится все более заполненным, становится меньше свободного смежного свободного пространства, и файловая система должна работать больше, чтобы найти места для размещения ваших файлов.

ta.speot.is
источник
Также имейте ввиду, что это флешка. Это аппаратное обеспечение никогда не было оптимизировано для скорости, а скорее доступность.
Surfasb
Я не думаю, что это объясняет, почему производительность будет снижаться при длинных копиях файлов. Скорее всего, производительность будет снижаться в течение срока службы привода, да?
ta.speot.is
Это имеет смысл. Они оптимизированы для скоростей серийной съемки, а не для длительных операций. Подумайте о среднем размере файлов, загружаемых на флэш-накопители. Вы бы оптимизировали передачу файлов длиной 30 секунд или оптимизировали бы передачу 2 секунды? Добавьте это к своим двум примерам, и это многое объясняет.
Surfasb
Это как когда ты пытаешься втиснуть двух человек через обычную дверь за раз. Сначала вы можете рассчитать. Вау, я прошел от нуля людей через эту дверь до двух за раз. Моя скорость отличная. Затем линия удлиняется, и ваша выборка становится лучше, и вы, наконец, понимаете, что маленькая выборка = плохая математика. , ,
Surfasb
@ ta.speot.is Я полагаю, что упомянутый вами дисковый кеш обрабатывается ОС на жестком диске и отличается от аппаратного кеша, который есть у внутренних жестких дисков, верно?
сентября
1

Хотя кеширование вызывает некоторые из них, это не единственный фактор. Если бы кеширование было единственным фактором, то мы ожидали бы, что скорость записи очень быстро упадет с нескольких сотен МБ / с до фактической скорости записи на диске и останется там до конца записи. Однако это не то, что я наблюдал при выполнении больших передач на диск и с него (например, при записи загрузочных образов). Вместо этого я наблюдаю, что скорость постепенно уменьшается в течение всей операции.

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

Внутри флеш-чипа есть блок данных, в который можно записать данные. При записи компьютер может делать только две вещи: он может стереть весь блок или изменить некоторые (или все) биты в блоке с 0 на 1.

Однако некоторые из этих блоков лучше, чем другие, особенно на флэш-накопителях низкого качества, и в результате при записи на него новых данных некоторые биты могут иногда переключаться обратно в 0 сразу после записи, и не не меняется. Таким образом, при записи в блок ОС необходимо проверить, чтобы убедиться, что все данные были записаны правильно, и, если это не так, нужно повторить блок, записав одни и те же данные в один и тот же блок два или три раза. пока данные не залипают.

Итак, когда ваш компьютер записывает кучу данных на флэш-диск, вот (не совсем точное, но достаточно хорошее) объяснение того, как это происходит:

  1. Возьмите первый набор блоков для записи и запишите их все.
  2. Прочитайте все блоки, которые мы только что написали, и составьте список тех, которые не соответствуют
  3. Напишите следующий набор блоков, а также те, которые были написаны неправильно в прошлый раз.
  4. Повторяйте 2-3, пока все блоки не будут написаны правильно.

Когда компьютер пишет на диск, он сообщает о скорости, с которой он впервые записывает блоки на диск. Поскольку он также должен будет перезаписывать более ранние блоки одновременно, общая пропускная способность, которая может использоваться для первичных блоков, уменьшается, так как увеличивается число перезаписей, которые также должны произойти. Таким образом, кажущаяся скорость записи уменьшается со временем.

AJMansfield
источник
Я записываю файл 12 Gig 7zip на новую флешку USB 3.0 в формате NTFS. В первую минуту он составлял около 100 МБ / с, затем уменьшался до 25 МБ / с в течение минуты, а затем снижался до 11 или около того в течение 10 минут. Это не был постепенный нисходящий уклон, это были 3 различных плато.
Эрик
Я копировал архив со своего старого ноутбука i7 с 16 гигабайтами оперативной памяти. Копирование этого же 7zip-архива с того же флэш-накопителя на моем новом ноутбуке Xeon с 32 гигабайтами оперативной памяти заняло 2 минуты, и скорости не было.
Эрик
0

Когда файл записывается на диск, будь то флэш-накопитель USB или жесткий диск, данные НЕ / НИКОГДА не читаются, чтобы проверить, совпадают ли они. Это займет вечность. проверка записи выполняется аппаратным обеспечением (проверка циклического избыточного кода), и в случае возникновения ошибки она отправляется обратно в приложение, где аппаратное обеспечение обнаружило ошибку. Замедление, которое происходит и замедляется (даже до паузы), вызвано тем, что процессор записывает быстрее, чем устройство может с этим справиться. Вы не обнаружите, что это происходит с внутренними жесткими дисками. Вы никогда не увидите, что на самом деле происходит в ОС Windows, но в Linux вы можете увидеть, что процессор останавливается, пока USB-оборудование не скажет «ОК», чтобы продолжить.

stevedonato
источник
Разница в скорости записи разных запоминающих устройств может быть очень большой, например, сравнить скорость записи старой SD-карты со скоростью записи SSD-диска SATA III.
Карел
3
Пожалуйста, воздержитесь от личных оскорблений. Хотя ваше сообщение может быть правильным, вы должны отредактировать его в соответствии с нашими стандартами сообщества.
Бен Н