Почему rsync медленнее NFS?

Почему rsync медленнее NFS?

Использование rsync для копирования некоторых больших файлов (по 24 МБ каждый):

bronger@steed:/tmp$ time rsync -r root@my_nas::media/distortion .
Password: 

real    0m18.128s
user    0m2.600s
sys     0m5.756s

(Вычтите 2 секунды на ввод пароля.) Теперь то же самое с NFS:

bronger@steed:/tmp$ time cp -a /mnt/media/distortion .

real    0m5.569s
user    0m0.036s
sys     0m2.128s

Как это возможно? Никакого сжатия или шифрования, но загрузка ЦП на стороне сервера составляет 100%. Это NAS с медленным ЦП ARM, но даже в этом случае любое копирование должно быть ограничено IO.

В файле rsyncd.conf указано:

pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
use chroot = no

[media]
path = /volume1/media 
comment = Main volume                      
fake super = yes                         
uid = 1000
gid = 1000    
read only = no
list = yes     
charset = utf-8  
auth users = root                 
secrets file = /etc/rsyncd.secrets

решение1

rsync работает медленнее, чем NFS, если rsync привязан к процессору. rsyncмногоменее эффективен, чем NFS, когда дело доходит до простой передачи данных. В моем случае rsync потреблял 100% ресурсов ЦП, тогда как NFS требовалось только 20%, и NFS все равно был быстрее в 3 раза. Это означает, что rsync потреблял в 15 раз (!) больше ресурсов ЦП, чем NFS, для того же объема сетевого трафика. Я передавал большие файлы.

Лучшим подходом в таком случае будет смонтировать каталог с помощью NFS на более быстрой машине и скопировать файлы с помощью rsync локально.

См.Статья в LWNчеловека с похожей проблемой.

решение2

RSync выполнит свою домашнюю работу, прежде чем приступить к проверке того, является ли копирование обязательным.

Если бы у вас уже были локальные версии одинаковых файлов, rsync бы победил, потому что он умнее.

Связанный контент