На даний момент я запускаю rsync для 2,2 мільйона файлів загальною вагою 250 Гб, і це займає лише 700 Кб файлів за 6 годин.
Хтось знає такий інструмент, як rsync, який може це зробити з декількох потоків, щоб він пройшов швидше?
На даний момент я запускаю rsync для 2,2 мільйона файлів загальною вагою 250 Гб, і це займає лише 700 Кб файлів за 6 годин.
Хтось знає такий інструмент, як rsync, який може це зробити з декількох потоків, щоб він пройшов швидше?
Відповіді:
Я сумніваюся, процесор є обмежуючим фактором тут. Ви, швидше за все, обмежені як пропускною здатністю мережі для передачі, так і диском IO; особливо затримка для всіх цих статичних дзвінків.
Чи можете ви розділити ієрархію файлової системи на менші шматки для паралельної обробки?
Що таке вихідні файли та що їх записує чи модифікує? Чи можна було б надсилати зміни, як вони відбуваються на рівні програми?
Якщо дисковою підсистемою приймаючого сервера є масив з декількома дисками, запуск декількох процесів 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