Медленнее ли копировать два файла одновременно, чем копировать один за другим? [Дубликат]

15

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

РЕДАКТИРОВАТЬ: есть ли какие-либо другие факторы, касающиеся файловой системы, в которую входит? Например, имеет ли значение копирование 1 каталога, содержащего 10 файлов, по сравнению с копированием 10 файлов со всего диска? Мне интересно только об одном исходном носителе и одном целевом носителе (без чтения с нескольких дисков).

Celeritas
источник
Иногда, иногда нет.
Даниэль Р Хикс
Я думаю, что этот вопрос мог бы извлечь выгоду из фактического ориентира, а не образованных предположений большинством ответивших здесь. У кого-нибудь был крутящийся диск и немного свободного времени? Я считаю, что для SSD различия, вероятно, будут незначительными; в то время как для жесткого диска, я полагаю, что ответ может варьироваться от значительного снижения производительности до возможного небольшого выигрыша в зависимости от количества и размеров файлов и относительной производительности исходного и целевого дисков (если они разные).
Ли Райан
1
Кроме того, если вы передаете через USB2, то, вероятно, не будет никаких различий; Типичная скорость чтения жесткого диска составляет около 50-100 МБ / с, а максимальная скорость USB2 - 32 МБ / с, поэтому узким местом, скорее всего, будет порт USB, а не характеристика жесткого диска из-за буферизации. Другими словами, сложно сказать так или иначе.
Ли Райан
@LieRyan Жаль, что вы не опубликовали комментарий как ответ, потому что он лучше всего подходит для вопроса, который я собирался задать, который касался копирования с 1 жесткого диска на 1 внешний жесткий диск по USB 2.
Celeritas

Ответы:

12

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

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

По-видимому, существует ряд приложений для принудительного выполнения операций копирования файлов в очередь и их последовательного выполнения, таких как Teracopy и FastCopy.

Однако выполнение операций одновременного копирования на нескольких физических томах - это совсем другое дело. Как происходит передача файлов по альтернативным протоколам.

Что касается вашего вопроса о копировании на диск, подключенный к USB-порту, он сильно зависит от типа памяти, которую использует диск, и используемой спецификации USB (безусловно, заслуживающего внимания узкого места для USB 1.0 и 2.0), а также от ранее упомянутые факторы относительно объема источника копии.

Bosco
источник
1
разве это также не зависит от возможностей процессора системы?
Рагхунандан
@Raghunandan Справедливое замечание - я считаю, что это полностью зависит от обстоятельств. Многоядерность / гиперпоточность, безусловно, повысили бы скорость копирования при чтении данных с нескольких физических томов или диска SSD / RAMDisk, но в сценарии с одним жестким диском ограничивающие факторы скорости копирования, скорее всего, будут по-прежнему зависеть от скорости ввода-вывода диска и наличия головки. задержка движения (я уверен, что для этого должен быть более подходящий термин ...).
Боско
3
@Raghunandan - может быть не столько ОС, сколько файловая система (NTFS против EXT4).
Enigma
2
@Raghunandan PC-24000 DDR3 имеет пропускную способность 24 ГБ / с, и это все еще не предел для современных процессоров, поэтому я не думаю, что это действительно вопрос процессора - даже если операции с жесткими дисками будут в 100 раз менее эффективны, чем операции с ОЗУ Процессор все еще может обрабатывать как минимум 245 МБ / с, и это все же больше, чем самая быстрая пропускная способность SSD.
Гроностай
1
@Raghunandan ваш раздел Linux может также находиться на более быстрой части диска, чем раздел Windows (например, вне v.
Inside
16

Здесь есть много факторов, которые могут повлиять на это.

  • Исходный диск - это вращающийся диск или SSD? Если диск вращается, расположение файлов может повлиять на производительность. Поскольку эти два файла, вероятно, находятся в разных частях диска, это повлечет за собой штрафы за поиск головы. Как вы сказали, если вы выберете два файла одновременно и начнете копирование таким образом, ОС будет обрабатывать копии последовательно.
  • Расположение файлов - фрагментация файлов (как на источнике, так и на месте назначения) может повлиять на производительность дисков не-SSD
  • Назначение - если у вас есть два потока записи, записывающих в одну цель, то вы снова столкнулись с проблемой поиска головы (опять же, если не SSD), и вы могли бы сильно чередовать файлы. Раньше я работал в компании, которая занималась производством высокопроизводительных хранилищ, и одной из больших проблем для них было то, сколько потоков видео в реальном времени они могли читать или записывать (для видео 2k требуется ~ 300 мегабит в секунду). Чередование записей замедлит процесс копирования, а также замедлит чтение файла. Конечно, если ваш диск фрагментирован для запуска, ваш файл все равно будет записан с чередованием.
  • один / несколько исходных / целевых - в зависимости от того, все ли файлы записаны с одного диска или все записываются на один диск, проблема поиска заголовка может быть более или менее
  • размер файла - для действительно маленьких файлов проблема поиска головы не будет иметь значения, так как голова все равно должна будет искать следующий файл (это означает, что вместо того, чтобы переходить назад и вперед между файлами, голова будет читать файлы последовательно)

А если операционная система достаточно умна, чтобы это исправить, то в целом они есть. То есть, если вы копируете несколько файлов одновременно (например, подумайте о выборе нескольких файлов одновременно и перетаскивании).

Конечно, если вы cpзапускаете две команды, то они будут запускаться обеими командами или в Windows, если вы копируете / вставляете отдельные файлы и получаете два окна прогресса «копирования» на экране, тогда оптимизация не произойдет. В этом случае вы явно сообщили ОС, что хотите запустить две копии одновременно, поэтому не будет решено, что одна копия важнее другой, и начните ставить их в очередь.

Эрни
источник
+1 Единственное, чего не хватает, так это конфигурации RAID , на которую ссылается «один / несколько источников / целей».
Дэвид Харкнесс
1
-1 Большая часть того, что сказано, не имеет отношения к вопросу
Celeritas
1

Если вы несколько раз выберите и скопируете - либо из графического интерфейса, либо с помощью команды, подобной «copy C: \ folder * D: \ folder \», - тогда файлы все равно будут последовательно копироваться, что ставит вопрос под сомнение.

Если вы копируете некоторые файлы, и пока они копируются, начните копировать больше файлов - либо двумя отдельными операциями из графического интерфейса, либо двумя отдельными командами, выполняемыми одновременно, например, «cp -r / usr / bin / / opt / bin / &». cp -r / usr / local / bin / / opt / local / bin / "- тогда ваша производительность почти наверняка снизится - возможно, немного (высокопроизводительный твердотельный диск, большие файлы в обеих операциях копирования) или, возможно, ТОННА (вращающийся диск, относительно небольшие файлы за одну или обе операции). Более совершенные операционные системы могут в некоторой степени снизить потери производительности - например, современные ядра Linux используют планировщик ввода / вывода CFQ (Completely Fair Queuing), который в некоторой степени «пакетно» блокирует операции для повышения эффективности - но вы все равно будете принимать хит производительности. В некоторых случаях попадание может быть ОГРОМНЫМ,

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

Джим Солтер
источник