2

Я использую USB-накопитель Seagate емкостью 1,5 ТБ, отформатированный в NTFS и подключенный к компьютеру Linux.

Я копирую файл 70 ГБ на диск.

Я заметил, что размер файла копии начал увеличиваться с меньшей скоростью.

В начале файл рос примерно со скоростью 19 МБ / с.

Теперь, когда размер файла назначения составляет 60 ГБ, скорость роста составляет около 5 МБ / с.

Какие факторы могут этому способствовать?

4 ответа4

4

Я думаю, это кеш (или буфер, если вы предпочитаете).

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

Постепенное снижение скорости, которое вы видите, может быть средней скоростью за всю передачу. Чем дольше выполняется передача, тем выше процент передачи при более низкой фактической скорости, и, следовательно, ниже средняя скорость передачи.

Говорят, картина рисует 1000 слов, так что вот одно.

Пример передачи графика

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

0

Помимо очевидного аспекта кэширования, упомянутого в ответах выше, Linux обрабатывает USB-устройства хранения данных не так, как локальные.

Когда вы переносите данные на "классический" диск (подключенный внутренне через SATA или внешне через eSATA), ядро Linux использует режим DMA, что означает, что вся передача выполняется непосредственно из ОЗУ на контроллер диска, без использования процессора.

Вот почему передачи SATA/eSATA выполняются быстро.

Однако, когда вы подключаете один и тот же диск через USB, каждый килобайт данных разделяется на 64-байтовые пакеты, которые обмениваются между вашим компьютером и контроллером USB в вашем случае USB-диска. Это должно быть сделано с использованием процессора, поэтому не в режиме DMA.

Вот почему USB медленнее.


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

Таким образом, чем больше файл вы пытаетесь отправить на USB-диск, тем больше кешей заполняется в процессе. Это как раз и есть причина нелинейного замедления передач.

0

Гул, сложно сказать.

Другая операция с источником и / или dest, фрагментированное дисковое пространство на одном или другом. Он ведет себя одинаково для каждой копии?

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .