Я оказался в ситуации, когда копирую целую файловую систему через два разных раздела HD (разных размеров и типов файловых систем). Проблема пока в том, что cp
а также rsync
прочитает один файл в источнике и запишет его в месте назначения - делая это для каждого небольшого файла. Поэтому у меня есть только небольшая буферизация ОС и сам кеш HD, чтобы предотвратить перемещение головки HD вперед и назад для каждого маленького файла - но кажется, что это довольно близко к этому.
У машины много оперативки. Что я могу сделать, чтобы прочитать несколько мегабайт (или даже ГБ) данных в одном и том же разделе, прежде чем добавить их в другой раздел?
Если это имеет значение, я копирую из BTRFS в EXt4 - данные включают в себя несколько деревьев Git, исходные файлы и тому подобное (несколько больших видео и аудио файлов).
источник
Ответы:
Вы можете попробовать поиграть с
cpio
или жеtar
трубопровод, например, используяcpio
«s--io-size
Тем не менее, я не верю, что вы получите лучшую производительность, чем вы можете достичь
cp
или жеrsync
делать свою работу. На самом деле файловая система и соответствующая ОС работают с поведением драйвера жесткого диска и помогают ему решать, искать или нет.Вы могли бы лучше понять это с этим ТАК вопрос , В частности:
источник