rsync가 NFS보다 느린 이유는 무엇입니까?

rsync가 NFS보다 느린 이유는 무엇입니까?

일부 대용량 파일(각각 24MB)을 복사하기 위해 rsync 사용:

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

어떻게 이럴 수있어? 압축이나 암호화는 포함되지 않지만 서버 측 CPU 사용량은 100%입니다. ARM CPU가 느린 NAS이지만, 그래도 모든 복사 작업은 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가 CPU에 바인딩된 경우 rsync는 NFS보다 느립니다. rsync는많이단순한 데이터 전송 측면에서는 NFS보다 효율성이 떨어집니다. 내 경우 rsync는 100% CPU를 소비했지만 NFS는 20%만 필요했고 NFS는 여전히 3배 더 빨랐습니다. 이는 동일한 양의 네트워크 트래픽에 대해 rsync가 NFS보다 15배(!) 더 많은 CPU 리소스를 소비했음을 의미합니다. 대용량 파일을 옮겼습니다.

이러한 시나리오에서 가장 좋은 접근 방식은 더 빠른 시스템에 NFS를 사용하여 디렉터리를 마운트하고 로컬에서 rsync를 사용하여 파일을 복사하는 것입니다.

참조LWN 기사비슷한 문제를 가진 사람의.

답변2

RSync는 복사가 필수인지 확인하기 전에 숙제를 할 것입니다.

동일한 파일의 로컬 버전이 이미 있다면 rsync가 더 똑똑하기 때문에 승리했을 것입니다.

관련 정보