![rsync가 NFS보다 느린 이유는 무엇입니까?](https://rvso.com/image/1344723/rsync%EA%B0%80%20NFS%EB%B3%B4%EB%8B%A4%20%EB%8A%90%EB%A6%B0%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
일부 대용량 파일(각각 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가 더 똑똑하기 때문에 승리했을 것입니다.