Чи повільніше копіювати два файли одночасно, ніж копіювати один за одним? [дублікат]


15

Мій бос сказав, що копіювати два файли одночасно потрібно більше, ніж робити один, а потім інший, тому що жорсткий диск повинен постійно перемикати голову між двома місцями на диску. Це правда? Мені здається, що операційна система повинна бути досить розумною, щоб виправити це (тобто вона повинна знати їх копіювати послідовно). Чи правда це при копіюванні на диск, підключений до порту USB?

EDIT: Чи є інші фактори щодо файлової системи, на які входять фактори? Наприклад, чи є різниця копіювання 1 каталогу, що містить 10 файлів, проти копіювання 10 файлів з усього диска? Мені цікаво лише одне джерело середовища та одне носій призначення (відсутність читання з декількох дисків).


Іноді, іноді ні.
Даніель Р Хікс

Я думаю, що це питання може скористатися фактичним орієнтиром, а не освіченими здогадами більшості відповідей тут. У кого-небудь був спінінговий диск і трохи вільного часу? Я вважаю, що для SSD різниці, ймовірно, незначні; в той час як для жорсткого диска, я вважаю, що відповідь може варіюватися від великого покарання за ефективність до можливої ​​незначної вигоди залежно від кількості та розмірів файлів та відносної продуктивності джерела та цільових дисків (якщо вони різні).
Лежать Раян

1
Крім того, якщо ви передаєте через USB2, то, ймовірно, не буде різниць; типова швидкість зчитування жорсткого диска становить близько 50-100 МБ / с, тоді як максимальна швидкість USB2 становить 32 Мб / с, тому вузьке вузьке місце, швидше за все, стане портом USB, а не жорстким диском через буферизацію. Іншими словами, важко сказати так чи інакше.
Лежать Раян

@LieRyan це дуже погано, що ви не опублікували коментар як відповідь, оскільки це найкраще відповідає питанню, яке я мав намір задати, що стосується копіювання з 1 жорсткого диска на 1 зовнішній жорсткий диск через USB 2.
Celeritas

Відповіді:


12

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

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

Очевидно, існує ряд додатків, які змушують операції з копіювання файлів чергати та виконувати послідовно, такі як Teracopy та FastCopy

Виконання одночасних операцій з копіюванням на кількох фізичних томах - це зовсім інша справа. Як і передача файлів через альтернативні протоколи.

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


1
це також не залежить від можливості процесора системи?
Рагунандан

@Raghunandan Справедливий момент - я вважаю, що це повністю залежить від обставин. Кілька ядер / гиперточивания, безумовно, підвищили б швидкість копіювання, якщо зчитування даних з декількох фізичних томів або SSD / RAMDisk, але в сценарії одного жорсткого диска обмежуючі коефіцієнти швидкості копіювання, ймовірно, все ще будуть знаходитися в швидкості введення-виводу диска і наявності головки -затримка руху (я впевнений, що для цього повинен бути більш відповідний термін ...).
bosco

3
@Raghunandan - Може бути не стільки ОС, скільки файлова система (NTFS vs EXT4).
Енігма

2
@Raghunandan PC-24000 DDR3 має пропускну здатність 24 ГБ / с, і це все ще не обмеження для сучасних процесорів, тому я не думаю, що це насправді питання процесора - навіть якщо операції з жорстким диском були б у 100 разів менш ефективними, ніж операції оперативної пам'яті. , Процесор все ще може працювати принаймні 245 Мб / с, і це все-таки більш ніж найшвидший пропускну здатність SSD.
gronostaj

1
@Raghunandan ваш Linux-розділ також може знаходитися на більш швидкій частині диска, ніж розділ Windows (наприклад, поза v. Всередині)
ernie

16

Тут є чимало факторів, які можуть вплинути на це.

  • Джерело - це це спінінг-диск або SSD? Якщо спінінг-диск, макет файлів може вплинути на продуктивність. Оскільки два файли, ймовірно, знаходяться на різних частинах диска, це спричинить за собою штрафи. Як ви вже говорили, якщо ви виберете одночасно два файли і ініціюєте копію таким чином, ОС буде обробляти копії послідовно.
  • Макет файлу - фрагментація файлів (як у вихідному, так і в кінцевому пункті) може вплинути на продуктивність для не-SSD накопичувачів
  • Місце призначення - якщо у вас є два потоки запису, що записуються в одну ціль, тоді ви повертаєтеся до головної проблеми пошуку (знову ж таки, припустимо, що це не SSD), і ви можете сильно переплести файли. Раніше я працював у компанії, яка зробила високу продуктивність для зберігання даних, і однією з найважливіших проблем для них було те, скільки потоків відео в реальному часі вони могли прочитати чи записати (2 к відео вимагає ~ 300 мег в секунду). Чергування запису уповільнить процес копіювання, а також зробить читання файлу назад повільніше. Звичайно, якщо ваш диск фрагментований для запуску, ваш файл все одно буде записаний перемежованим.
  • одиночне / декілька джерел / цілей - залежно від того, чи всі ваші файли надходять з одного накопичувача чи всі записуються на один привід, проблема головної спроби може бути більшою чи меншою
  • розмір файлу - для дійсно невеликих файлів питання про пошук голови не має значення, оскільки голові в будь-якому разі потрібно буде шукати наступний файл (це означає, що замість того, щоб переходити вперед і назад між файлами, голова буде читати файли послідовно)

Щодо того, якщо ОС досить розумна, щоб виправити це, загалом вони є. Тобто, якщо ви копіюєте декілька файлів одночасно (наприклад, подумайте про вибір декількох файлів одночасно та перетягніть n-drop).

Звичайно, якщо ви cpзапустили дві команди, тоді буде запущено дві команди, або в Windows, якщо ви скопіюєте / вставте окремі файли та отримаєте два вікна "копіювання" прогресу на екрані, тоді оптимізація не відбудеться. У цьому випадку ви чітко сказали ОС, що ви хочете запустити дві копії одночасно, тому не збираєтесь вирішувати, що одна копія важливіша за іншу і розпочати їх чергування.


+1 Єдина річ, яка відсутня - це конфігурація RAID , на яку посилається "єдине / кілька джерел / ціль".
Девід Харкнесс

1
-1 Більшість сказаного не пов'язане з питанням
Селерітас,

1

Якщо ви обираєте кілька разів і копіюєте - або з графічного інтерфейсу, або за допомогою команди типу "скопіювати C: \ папка * D: \ папка \" - файли будуть все-таки копіюватися послідовно, виводячи запит.

Якщо ви копіюєте деякі файли, і при цьому вони копіюють, почніть копіювати більше файлів - або з двох окремих операцій з графічного інтерфейсу, або з двох окремих команд, які виконуються одночасно, як "cp -r / usr / bin / / opt / bin / & cp -r / usr / local / bin / / opt / local / bin / "- тоді ваша продуктивність майже напевно зменшиться - можливо, на трохи (можливо, твердотільний накопичувач високого класу, великі файли в обох операціях копіювання) або, можливо, на TON (спінінг-диск, відносно невеликі файли в одній або обох операціях). Кращі операційні системи можуть певною мірою пом'якшити покарання за продуктивність - наприклад, сучасні ядра Linux використовують планувальник вводу / виводу CFQ (Повністю справедливої ​​черги), який певною мірою "пакетно" блокує операції для підвищення ефективності - але ви все одно приймете спектакль. У деяких випадках хіт може бути ВЕЛИЧЕЗНИМ,

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.