В настоящее время я использую rsync для 2,2 миллиона файлов общим объемом 250 ГБ, и это всего лишь 700 тысяч файлов за 6 часов.
Кто-нибудь знает инструмент, похожий на rsync, который может делать это с несколькими потоками, чтобы он шел быстрее?
В настоящее время я использую rsync для 2,2 миллиона файлов общим объемом 250 ГБ, и это всего лишь 700 тысяч файлов за 6 часов.
Кто-нибудь знает инструмент, похожий на rsync, который может делать это с несколькими потоками, чтобы он шел быстрее?
Ответы:
Я сомневаюсь, что процессор является ограничивающим фактором здесь. Скорее всего, вы ограничены как пропускной способностью сети для передачи, так и дисковым вводом-выводом; особенно задержка для всех этих вызовов статистики.
Можете ли вы разбить иерархию файловой системы на более мелкие куски для параллельной обработки?
Каковы исходные файлы, и что пишет или изменяет их? Можно ли отправлять изменения по мере их появления на уровне приложения?
Если дисковая подсистема принимающего сервера представляет собой массив с несколькими дисками, выполнение нескольких процессов rsync может повысить производительность. Я запускаю 3 процесса rsync для копирования файлов на сервер NFS (RAID6 с 6 дисками на группу рейдов) для насыщения Gigabit Ethernet.
Этот парень рассказывает об основном питоне, который запускает несколько процессов rsync http://www.reliam.com/company/featured_geek
Вы можете рассмотреть возможность проверки многопоточного клона cp для linux (с открытым исходным кодом): http://static.usenix.org/event/lisa10/tech/slides/kolano.pdf