Мне нужно скопировать некоторые данные, которые включают 900 000 крошечных файлов общим объемом около 30 гигабайт на компьютер с Windows. Тем не менее, его необходимо скопировать и настроить менее чем за полтора часа, а копирование с жесткого диска USB может занять более 5 часов, в основном из-за огромного количества файлов. Есть ли лучший / более быстрый способ справиться с этим, такой как копирование блоков? Спасибо
usb-storage
file-transfer
Джо Лига
источник
источник
Ответы:
При большом количестве файлов лучше создать архив tar, чтобы у вас было меньше файлов для работы. Если вы используете внешний жесткий диск USB 2.0, вы должны использовать USB 3.0, eSATA или использовать быструю локальную сеть.
Какая у вас исходная ОС? Если обе ваши операционные системы были Linux, вы могли бы передать файлы через tar, gzip и ssh на целевой компьютер. Вы можете установить Cygwin на Windows, чтобы получить этот тип функциональности и для Windows.
Обновление: пост
" Использование Tar и SSH для улучшения скоростей SCP " описывает команды, необходимые для отправки содержимого tar через ssh.
источник
Если жесткий диск можно извлечь из интерфейса USB и подключить к SATA / ATA, я установил бы его на конечном компьютере. Как вы заметили, скорость передачи будет намного выше. Для копирования, если вы работаете в Windows, я бы сделал простую ROBOCOPY. Это так быстро, как вы можете надеяться, хотя есть и другие альтернативы.
Я бы постарался не сжимать все эти файлы, хотя есть большая вероятность, что время сжатия и перемещения превысит простое перемещение файлов.
* Добавлена опция / MT для robocopy. Это может значительно ускорить передачу, когда вы находитесь в многопоточной среде.
источник
/MT
на локальных переносах с одного диска или вызовет сильное перебивание диска? Это обычное явление для копирования больших общих ресурсов между серверами, но они часто имеют дополнительную задержку из-за обхода сети и улучшенную IOPS из RAID-массивов.Вы можете попробовать сделать снимок всей папки / диска
В системах Linux вы можете использовать,
dd
чтобы получить сырую копию файловой системы и скопировать ее как один большой файл.Для извлечения образа в Windows вам может понадобиться установить Cygwin или программу, способную обрабатывать
dd
образы.источник
Установите диск с исходными файлами на компьютере, который вы настраиваете, и перенесите диск на диск. Забудь про USB. Даже передача по проводам (объединение компьютеров в сеть) будет быстрее, чем через USB (при условии, что USB 2.0 и 1 Гбит / с NIC). Если это повторяющееся событие, обратите внимание на репликацию.
источник
Используйте
rsync
сz
опцией.Это увеличит скорость передачи по сети. Так что, скорее всего, бесполезно в вашем случае.
После дополнительного чтения я понял, что не следует использовать флаг '-z' при копировании данных с одного локального жесткого диска на другой, это увеличивает накладные расходы. Спасибо за комментарий от @FakeName.
источник
Вы быстро приближаетесь к ограничениям вашего жесткого диска. На самом деле, с текущими стандартными накопителями невозможно измерить время передачи с помощью операции копирования для каждого файла.
Предполагая, что для каждого файла требуется 1 HD, время поиска и поиска составляет 7 мс (что является немного идеализированным, реально, для каждого файла потребуется два поиска, если только растровое изображение тома не кэшируется в ОЗУ), в лучшем случае вы будете управлять ~ 142 файлами в секунду ( \ $ \ frac {1000} {7} = 142,8 ... \ $).
Со спецификациями OP (30 ГБ, 900 000 файлов) это составляет ~ 33 КБ на файл (\ $ \ frac {30 000 000k} {900 000} = ~ 33,3 ... \ $. 33 КБ * 142 = 4,68 МБ / с.
Минимальное время для передачи 30 ГБ на 5 Мбайт, составляет ~ 1 час, 40 минут (\ $ \ гидроразрыва {30000} {5} = = 6000 \ $ секунд. \ $ \ Гидроразрыва {6000} {60} = 100 \ $ минут или 1:40 часов)
Поэтому невозможно достичь скорости лучше, чем ~ 5 Мбит / с, и это при идеальном диске (и меньше операций поиска. Это для одного поиска на файл. Реально, это будет два). Вы полностью ограничены производительностью диска.
Единственный способ повысить производительность - это последовательно копировать всю файловую систему и раздел.
dd
можно сделать это на Linux.Что ты пытаешься сделать?
источник
Попробуйте 7zip архивировать файлы только в один файл. Если возможно, используйте WLAN с подключением adhoc к ноутбуку.
источник
Что касается ответа @arcyqwery, вы можете сжать его и одновременно превратить в один большой файл. Это немного ускорит процесс.
Возможно, стоит также использовать такую программу, как TeraCopy , поскольку она обычно быстрее, чем производительность копирования окон по умолчанию. Вы должны проверить с подобными обстоятельствами в вашем случае, чтобы проверить, хотя.
источник
У меня был похожий случай. Я отключил Антивирус, скорость копирования изменилась с 3 МБ / с до 12 МБ / с.
источник