После нескольких минут копирования он становится все медленнее и медленнее. Зачем?
Например, он начинается с 20 МБ / с, а когда он заканчивается, это @ 10 МБ / с.
Различные файлы, большие, маленькие и т. Д.
ОБНОВЛЕНИЕ: вопрос касается различных операционных систем, поэтому это "общий вопрос"
usb-flash-drive
file-transfer
LanceBaynes
источник
источник
Ответы:
Такое поведение не относится к вашей флешке, вы можете увидеть это и на жестких дисках. Это связано с механизмом кэширования, который используется большинством операционных систем и дисков для ускорения небольших операций записи.
20 Мбит / с, которые вы видите, - это данные, записываемые в кэш диска (обычно быстрая, но небольшая память). Как только этот кеш заполнен, он должен быть сброшен на диск - и теперь у вас более узкий диск.
Пример 1: Эффект действительно ярко выражен, если у вас есть контроллер с большим кешем (например, хороший контроллер RAID5), где ~ 500 МБ данных можно быстро кэшировать, прежде чем они будут записаны на диск.
Пример 2: Вы можете увидеть кеш при воспроизведении, если вы одновременно извлекаете флешку, когда копия файла «закончена». В этот момент ваш файл распределяется между диском и кешем, поэтому копирование «завершено» в отношении операционной системы, но контроллеру диска все равно необходимо записать то, что осталось в кеше, на диск. Если вы вставите флешку обратно и осмотрите файл, вы увидите, что там не все.
Отказ от ответственности: эти примеры не будут работать, если у вас не включено кэширование записи в вашей операционной системе / на диске.
Кроме того, если это не кеширование диска на работе, вероятно, то, что вы видите, является эффектом фрагментации. По мере того, как диск становится все более заполненным, становится меньше свободного смежного свободного пространства, и файловая система должна работать больше, чтобы найти места для размещения ваших файлов.
источник
Хотя кеширование вызывает некоторые из них, это не единственный фактор. Если бы кеширование было единственным фактором, то мы ожидали бы, что скорость записи очень быстро упадет с нескольких сотен МБ / с до фактической скорости записи на диске и останется там до конца записи. Однако это не то, что я наблюдал при выполнении больших передач на диск и с него (например, при записи загрузочных образов). Вместо этого я наблюдаю, что скорость постепенно уменьшается в течение всей операции.
Это замедление вызвано остатком данных на флэш-чипе (-ах), используемом для хранения данных, что требует записи в некоторые блоки более одного раза.
Внутри флеш-чипа есть блок данных, в который можно записать данные. При записи компьютер может делать только две вещи: он может стереть весь блок или изменить некоторые (или все) биты в блоке с 0 на 1.
Однако некоторые из этих блоков лучше, чем другие, особенно на флэш-накопителях низкого качества, и в результате при записи на него новых данных некоторые биты могут иногда переключаться обратно в 0 сразу после записи, и не не меняется. Таким образом, при записи в блок ОС необходимо проверить, чтобы убедиться, что все данные были записаны правильно, и, если это не так, нужно повторить блок, записав одни и те же данные в один и тот же блок два или три раза. пока данные не залипают.
Итак, когда ваш компьютер записывает кучу данных на флэш-диск, вот (не совсем точное, но достаточно хорошее) объяснение того, как это происходит:
Когда компьютер пишет на диск, он сообщает о скорости, с которой он впервые записывает блоки на диск. Поскольку он также должен будет перезаписывать более ранние блоки одновременно, общая пропускная способность, которая может использоваться для первичных блоков, уменьшается, так как увеличивается число перезаписей, которые также должны произойти. Таким образом, кажущаяся скорость записи уменьшается со временем.
источник
Когда файл записывается на диск, будь то флэш-накопитель USB или жесткий диск, данные НЕ / НИКОГДА не читаются, чтобы проверить, совпадают ли они. Это займет вечность. проверка записи выполняется аппаратным обеспечением (проверка циклического избыточного кода), и в случае возникновения ошибки она отправляется обратно в приложение, где аппаратное обеспечение обнаружило ошибку. Замедление, которое происходит и замедляется (даже до паузы), вызвано тем, что процессор записывает быстрее, чем устройство может с этим справиться. Вы не обнаружите, что это происходит с внутренними жесткими дисками. Вы никогда не увидите, что на самом деле происходит в ОС Windows, но в Linux вы можете увидеть, что процессор останавливается, пока USB-оборудование не скажет «ОК», чтобы продолжить.
источник