LINUX.ORG.RU
ФорумTalks

быстрое копирование файлов между жесткими дисками


0

1

Оказалось, что Винда в плане копирования большого количества мелкий файлов - полный идиот.
Конкретно пробовал на Windows 7 x64 + клиент WoW (25 гигов).

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

На линуксе такая фича тоже будет работать? Какие есть еще хаки чтобы ускорить копирование?

[не в general, потому что не вопрос, а обсуждение, но можно и грохнуть за ненадобностью :]

★★★★☆
Ответ на: комментарий от drBatty

НУ я в общем то тоже не знаю, почему мой линупс с кореутилсами чего-то там не понимал, но факт остается фактом: асинк _очень сильно_ спасал в случае той флешки. Это воспроизводилось с одинаковой «эффективностью» как при копировании через cp, так и mc. Такие дела.

staseg ★★★★★
()
Ответ на: комментарий от drBatty

перечитай первый пост: ТС предлагает скопировать много мелких файлов с источника в один большой поток в пайпе, а потом это поток раскидать на много мелких файлов на приёмнике. В грамотно сделанной ФС это что в лоб, что полбу, в отличие от дерьма по имени WinNT4-5-6+NTFS.

вообще-то трюк стар как мир и придуман задолго до появления WinNT и является классикой в системном администрировании :) что-то подобное уже было для EC ЭВМ (IBM 360) и почти в современном виде (c пайпами и tar`ом) в UnixWare

MKuznetsov ★★★★★
()

Когда копирую сейвы майнкрафта с десктопа на нетбук (ext3 и ext4 соответственно) и обратно, вижу как 4к мелких файлов сначала мееедленно летят, а потом внезапно начинаются большие и быстро-быстро перелетают. Так что к ext* тоже относится.

pevzi ★★★★★
()
Ответ на: комментарий от pevzi

Хотя, тут еще sshfs может играть какую-то роль.

pevzi ★★★★★
()
Ответ на: комментарий от MKuznetsov

>вообще-то трюк стар как мир и придуман задолго до появления WinNT и является классикой в системном администрировании :) что-то подобное уже было для EC ЭВМ (IBM 360) и почти в современном виде (c пайпами и tar`ом) в UnixWare

только он не работает в венде. У меня во всяком случае ничего хорошего не получилось.

А в никсах - да, не я придумал... может и в правду с 360й, я тогда был мал и глуп, не помню.

drBatty ★★
()
Ответ на: комментарий от staseg

Немного не понимаю.

• при аsync быстро-быстро выполняется куча запросов на запись файла, и параллельно они потихоньку уже пишутся на диск
• при sync файл сначала полностью записывается, а потом начинает копироваться следующий и т. д.

Извиняюсь за скудность речи. Так, грубо говоря? (:

pevzi ★★★★★
()

Этому юникс-бояну - лет 20, не меньше

Led ★★★☆☆
()
Ответ на: комментарий от pevzi

У меня тоже дилетанские представления о том, как это работает, но думаю примерно также. На той злополучной флешке было замечено, что при синхронном копировании, при том, что скорость записи в принципе нормальная, cильное протупление возникает где-то на open и/или close, в итоге копирование большого числа мелких файлов встает колом. А за счет асинхронности этого эффекта практически не заметно.

staseg ★★★★★
()
Ответ на: комментарий от MKuznetsov

> вообще-то трюк стар как мир и придуман задолго до появления WinNT и является классикой в системном администрировании :) что-то подобное уже было для EC ЭВМ (IBM 360) и почти в современном виде (c пайпами и tar`ом) в UnixWare

а что за трюк? тар+пайп предложенный красноглазым братом drBatty ничего не дает на локальных дисках

# time tar --directory 1 --create --file=- . | tar --directory 2 --extract --file=-
real 2m8.039s
user 0m3.628s
sys 0m36.458s

# time cp -r 1 2
real 2m4.669s
user 0m1.084s
sys 0m25.014s

theurs ★★
()
Ответ на: комментарий от theurs

а что за трюк? тар+пайп...

если копируется много мелких (1-2 блока) файлов с одного на другой _физический_ носитель, то тар+пайп дают возможность планировщику IO продемонстрировать свои возможности, хотя и получается копирование через память. Простой cp такой возможности не даёт, при том что прямая передача всего 1 блока между устройствами вещь не слишком эффективная.

MKuznetsov ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.