1

Используя Linux, я копирую с помощью rsync 60 ГБ файлов, вырезанных в очень маленькие файлы (1 МБ каждый). Я думал, что копирование будет ограничено максимальной скоростью записи целевого жесткого диска, но кажется, что вся моя система работает очень медленно (например, для разблокировки требуется около 5 минут) Источником является внешний жесткий диск, как и пункт назначения, оба подключены через USB3.0.

Мониторинг моей системы с помощью «htop» показывает, что процессор практически не используется и память в основном доступна. Я попытаюсь скопировать файлы с помощью «cp», но я сомневаюсь, что будет какая-то разница. Что вызывает эту проблему производительности? Почему копирование между двумя внешними жесткими дисками вызывает проблемы с производительностью моей внутренней системы?

Я не думаю, что это поправимо, но я хотел бы понять.

2 ответа2

1

Это происходит из-за ограничений жестких дисков. У вас может быть отличный процессор, быстрая память, великолепная материнская плата и т.д., Но все данные, которые он обрабатывает и загружает, находятся на жестком диске. Когда вы копируете много маленьких файлов, жесткий диск должен записывать дополнительную информацию для каждого файла. Типы файлов, начальные и конечные местоположения, а также другие данные. Когда вы пишете один большой файл (.zip, .rar, .7z, .gz), ему не нужно записывать все эти другие данные на диск, поскольку протокол сжатия обрабатывает эти вещи позже.

Вы используете чтение / запись вашего диска. Он пишет для многих такими маленькими шагами, что у него нет места для чтения данных, чтобы разблокировать вашу ОС или для открытия программ.

Я не знаком с анализаторами использования дисков в Linux, но если бы вы могли найти один и опубликовать свои выводы, это было бы очень полезно.

1

Существует существенная процедурная разница между копированием файла 60 ГБ на диск и копированием 600 файлов 10 МБ на диск.

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

Если вы передаете ОДИН файл, это произойдет один раз. Или с 600 файлами .... ну, 600 раз.

Кроме того, если вы работаете через USB2, этот конвейер, скорее всего, является виновником - - USB 2 только 480 Мбит / с, что довольно медленно и утомительно, и из-за более 60 000 раз ваш диск будет копировать / рукопожатие / Проверка, это займет. очень. долго. время...

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

Реальная разница между внутренним и внешним заключается в том, что на вашем внутреннем диске работает «конвейер», который в ~ 45 раз БОЛЬШЕ И БЫСТРЕЕ, чем на внешнем USB-накопителе. Это огромная разница ...

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

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

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

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