1

Я должен вручную скопировать несколько файлов и сделать резервную копию большого количества данных. Это от ноутбука HP, жесткого диска SATA 7200 об / мин (без рейда), Windows 8.1 до внешнего жесткого диска USB 3.0 7200 об / мин. Оба имеют файловую систему NTFS. Файлы имеют действительно различные размеры.

Мой вопрос, быстрее ли копировать их параллельно или последовательно?

С моей точки зрения разработчика, это будет происходить быстрее, потому что я избегаю дополнительных репозиций и некоторых накладных расходов. Но так как я не на этой стороне ИТ, я бы хотел узнать ваше мнение по этому поводу. Какой для вас оптимальный подход, последовательное или параллельное копирование?

2 ответа2

2

Вы хотите копировать файлы один за другим, но все операции ввода-вывода выполняются асинхронно.

Это означает, что приложение будет выдавать несколько запросов на чтение одновременно, и ОС выполнит их, как может, и сообщит приложению, что блок готов. Затем приложение отправит запрос на запись, и операционная система снова выполнит его по собственному расписанию и уведомит приложение, когда оно будет выполнено. На практике это будет означать, что приложение будет иметь несколько невыполненных запросов на чтение и несколько невыполненных запросов на запись в любое время.

Во-вторых, важен размер запросов на чтение / запись. Последние версии Windows (начиная с Vista) позволяют быстрее читать данные небольшими блоками и быстрее записывать их большими блоками. С другой стороны, чтение из сетевого местоположения быстрее с большими блоками.

Вот как работает собственная robocopy Windows, и это чертовски хорошо.

-

В качестве бонуса - при копировании множества мелких файлов процесс копирования приводит к непропорционально долгому времени открытия и закрытия файлов. Итак, вам нужно приложение, которое просматривает свою очередь копирования и заранее открывает файлы. Это действительно поднимает копирование на другой уровень с точки зрения скорости.

1

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

Для этого случая ...

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

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