Копирование тысяч файлов на одном HD


1

Я оказался в ситуации, когда копирую целую файловую систему через два разных раздела HD (разных размеров и типов файловых систем). Проблема пока в том, что cp а также rsync прочитает один файл в источнике и запишет его в месте назначения - делая это для каждого небольшого файла. Поэтому у меня есть только небольшая буферизация ОС и сам кеш HD, чтобы предотвратить перемещение головки HD вперед и назад для каждого маленького файла - но кажется, что это довольно близко к этому.

У машины много оперативки. Что я могу сделать, чтобы прочитать несколько мегабайт (или даже ГБ) данных в одном и том же разделе, прежде чем добавить их в другой раздел?

Если это имеет значение, я копирую из BTRFS в EXt4 - данные включают в себя несколько деревьев Git, исходные файлы и тому подобное (несколько больших видео и аудио файлов).


Копирование завершено с помощью rsync :-), но все же, разумный способ сделать это будет приветствоваться.
jsbueno

Ответы:


2

Вы можете попробовать поиграть с cpio или же tar трубопровод, например, используя cpio «s --io-size

Тем не менее, я не верю, что вы получите лучшую производительность, чем вы можете достичь cp или же rsync делать свою работу. На самом деле файловая система и соответствующая ОС работают с поведением драйвера жесткого диска и помогают ему решать, искать или нет.

Вы могли бы лучше понять это с этим ТАК вопрос , В частности:

РЕДАКТИРОВАТЬ: Ах, "родной Linux" может улучшить производительность путем чередования   читает и пишет с асинхронным вводом / выводом. Позволить командам накапливаться может   помогите драйверу диска решить, когда лучше искать. Вы можете попробовать Boost   Asio или pthreads для сравнения. Что касается "не может разбить POSIX файл   дескрипторы "... ну, это правда, если вы что-то делаете с данными,   не просто слепо копировать.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.