Является ли (Ubuntu) алгоритм копирования файлов Linux лучше, чем Windows 7?


12

Копирование Windows - настоящий беспорядок со времен Windows Vista. Даже Microsoft утверждает, что они улучшили производительность, с точки зрения пользователя, это не совсем заметно. Даже для одного файла окно копирования появляется слишком много времени для «Вычисления» и последующего завершения копирования (даже после 100% завершения диалоговое окно остается активным).

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

Я прочитал информативный пост от Джефф Этвуд несколько лет назад на Windows File Copying , но каковы мои конкретные вопросы

  • Является ли (Ubuntu) производительность файлов Linux лучше, чем Windows-7?
  • Оба алгоритма, Windows и Linux используют многопоточность и конвейерный механизм для повышения скорости? Если да, какой из них лучше?

3
В винде используй xcopy, или даже robocopy, Намного лучше. Например, с последним вы можете сделать два прохода, первый для создания всех каталогов, но не для копирования каких-либо файлов, и второй для копирования фактических файлов, таким образом, не вызывая фрагментации на цели.
Kerrek SB

1
Или RichCopy ( blogs.technet.com/b/ken а также скачать )
sehe

Зависит также от файловой системы - ваша система предположительно использует что-то вроде ext3/4, который конкурирует с NTFS здесь. Вы также можете попробовать reiserfs а также xfs - оба из которых оптимизированы для быстрой работы с небольшими файлами.
new123456

@KerrekSB, пожалуйста, сделайте свой комментарий ответом, чтобы я мог его проголосовать. (Я сделал +1 комментарий, но вы знаете, что я имею в виду.) Это ответ.
CarlF

Ответы:


6

Стандарт copy встроенный в Windows не очень хорошо, но Windows поставляется с двумя расширенными командами, которые гораздо более эффективны: xcopy а также robocopy, Особенно, когда вам нужен полный контроль над расширенными функциями файловой системы, такими как списки управления доступом или альтернативные потоки данных, robocopy это инструмент выбора.

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

В общей сложности, robocopy очень эффективен и полностью осведомлен о возможностях NTFS.


NTFS лучше, чем ext3 / 4?
sarat

Как двухпроходная робокопия помогает нам уменьшить фрагментацию, так как реальный контент будет скопирован позже. Распределение диска полностью контролируется файловым менеджером нет?
sarat

Я делаю некоторые трюки, такие как использование Beyond Compare для копирования файлов. Т.е. я могу запустить несколько операций копирования, чтобы максимально использовать пропускную способность. Но я не уверен, насколько фрагментированным это будет
sarat

2
@Sarath: Относительно фрагментации: записи каталога растут по мере добавления в каталог новых файлов и подкаталогов. Если вы просто наивно создаете каталог и начинаете помещать файлы, в конечном итоге исходная запись каталога будет слишком маленькой и должна быть расширена, но теперь места нет, потому что у вас уже есть данные файла, следующие за ней. С /CREATE опция, создаются пустые файлы и подкаталоги, которые занимают нет пространство и, таким образом, позволяет записывать записи каталога непрерывно.
Kerrek SB

1
@Sarath: Что касается сравнения NTFS с Ext, я не могу сказать, потому что NTFS не открыта и вопрос эффективности довольно расплывчатый. NTFS, безусловно, является прекрасной технологией с большим количеством функций. Однако выбора нет, потому что вы будете использовать NTFS в Windows и Ext (или BTRFS) в Linux, и все.
Kerrek SB

4

Частично скорость, которую вы видите в Ubuntu Linux, вероятно, кеширует файлы. Насколько я знаю, копирование файлов в Linux не прилагает усилий для минимизации использования файлового кэша.

В Linux, когда вы копируете файл, который занимает менее 50% вашей оперативной памяти, весь файл копируется в файловый кеш, а затем записывается на диск, если позволяет время. Это кажется очень быстрым, но оно вытесняет другие более полезные файлы из кэша. Это могут быть файлы веб-кэша, электронные письма, файлы конфигурации, файлы шрифтов и т. Д.

Windows XP также используется для копирования без учета файлового кэша. Но в Windows Vista Microsoft изменила Проводник, чтобы при копировании использовать ограниченный объем файлового кэша. , Это уменьшает влияние больших копий файлов на остальную часть системы. Но это также снижает скорость даже относительно небольших копий файлов до скорости жесткого диска.


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

Я думаю, что это ответ, который решает вопрос почти полностью.
Nandakumar Edamana

2

В Windows используйте Teracopy - это решит общую проблему глупости, которая есть у Explorer.

В Ubuntu я обнаружил, что копирование файлов происходит очень быстро.

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

Обновление: файловые операции Windows медленны, вероятно, из-за интеграции со службами и реестром. Я думаю, что Nautilus (в Gnome) - это простой процесс, или, по крайней мере, он не имеет нагрузки / прерываний, которые имеет Explorer.


Решите глупость, добавив еще один графический интерфейс, который должен оставаться открытым :) В Ubuntu мой опыт заключается в том, что вы можете закрыть диалоговое окно копирования / перемещения, и оно перейдет в системный трей, показывая уведомление, когда это будет сделано. Не уверен, как Natty с настольным компьютером Unity делает это
sehe

Teracopy загружается с помощью Explorer. Вам не нужно держать его открытым. Таким образом, Teracopy загружается в память без каких-либо усилий пользователя и работает ненавязчиво. Ubuntu не нужно ничего подобного, потому что в Nautilus встроен весь этот интеллект, т. Е. Опции «слить» и «пропустить все».
BZ1

+1: спасибо за то, что привлекли мое внимание к TeraCopy!
sehe

Я использовал бесплатный инструмент с открытым исходным кодом FastCopy. [ ipmsg.org/tools/fastcopy.html.en]
sarat

-1

Перемещение и копирование файлов в Linux, естественно, является быстрой операцией. Причина, по которой вы можете перемещать и копировать файлы так быстро, заключается в том, что и источник, и пункт назначения находятся в одном разделе. Операция должна только изменить inode. Перемещение файлов между различными разделами по-прежнему очень быстро (всего лишь минута или около того для 1-гигабайтного файла). В Windows для перемещения файлов в места назначения в одном и том же разделе требуются некоторые действия, поскольку управление файлами в Windows является грязным. (Подумайте о фрагментации файлов и о том, как Windows форматирует жесткие диски.)


Я согласен с тем, что движение внутри перегородок происходит довольно быстро. Но при копировании всегда хотелось иметь дублированную дату на диске и создавать новые inode. Также я сомневаюсь, что перемещение файлов между разделами стоит дорого, потому что происходит физическое перемещение файлов. Поправь меня, если я ошибаюсь.
sarat
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.