Если файлы размером около двух гигабайт, я думаю, что это очень медленно.Если все файлы имеют размер около 200 байт, я думаю, это быстро.Ну, на самом деле я не знаю, насколько маленькими должны быть файлы, прежде чем я подумаю, что эта скорость быстрая, но если они все довольно крошечные, ваш диск будет тратить большую часть своего времени на поиск, чтение метаданных, запись метаданных,фиксация журналов и т. д.
Но в любом случае это звучит разочаровывающе.
Несколько идей сразу приходят на ум:
Вы можете повернутьВыключите a_time
время простоя для конкретной файловой системы, если вы не используете a_time
для чего-либо.(Добавьте параметр noatime
mount(8)
в ваш файл fstab(5)
.) Это предотвратит огромное количество очень маленьких разбросанных записей по всей стороне «чтения» вашей операции копирования.Это может сбить небольшой процент времени.5%?10%?Может больше?Плюсом является то, что для использования mount(8)
-oremount,noatime
требуется несколько секунд, а затем выясняется.:)
Вы можете использовать жесткие ссылки вместо копий .(cp(1)
упоминает параметр командной строки -l
для использования ссылок - я должен смущенно признать, что никогда не пробовал, я всегда делал свои ссылки с помощью ln(1)
, но для сотен тысяч файлов звучит неоправданноПоэтому попробуйте от -l
до cp(1)
и отчитайтесь. :) Преимущество использования жестких ссылок заключается в (а) сохранении дискового пространства (б) сохраненной пропускной способности диска - только метаданные считываются / записываются, что может быть в тысячи раз быстрее,Однако это может быть не тот инструмент, который вам нужен, он действительно зависит от того, как ваши приложения изменяют данные во время выполнения операции резервного копирования.
Можно придумать более разумную замену для всего этого.rsync
отличный инструмент, но не в высшей степени блестящий.git(1)
может быть более умным инструментом для вашей задачи.Во-первых, вообще не создавая копию, это может пойти намного быстрее.
Вы можете использовать некоторые хитрые приемы блочных устройств: например, LVM снимки, чтобы разрешитьВаша операция резервного копирования должна продолжаться параллельно с использованием, и удалить моментальный снимок, когда резервное копирование будет сделано.Это должно быть значительно быстрее, если в ваших данных нет большого оттока.Если есть много оттока, это может быть только немного лучше.Но это позволило бы вашему rsync начать сразу же, а не с другой стороны пятичасового окна.