nfs-share에서 로컬 디렉토리로 파일을 복사 할 때 cp와 비교할 때 rsync가 매우 느립니다 (요소 8-10).


17

VM 저장소의 새로운 백업 서버가되어야하는 Ubuntu 서버를 새로 설치했습니다. 서버에는 SAN에 연결하는 데 사용되는 4 개의 nics가 있으며 그 중 2 개는 10Gbit (실제로 최신 드라이버가있는 Intel x540-T2)입니다. nfs-share를 로컬로 마운트하고 ~ 30 개의 파일, 약 15 개의 vm-image 및 해당 로그 파일이있는 디렉토리를 복사하는 동안 속도 차이를 비교했습니다. 이미지 크기는 8GB ~ 600GB입니다.

사용 :

cp -rf /mnt/nfs-share /backup-storage/

bmon은 결과적으로 약 600MiB / s를 보여줍니다.

사용

rsync -av /mnt/nfs-share /backup-storage/

bmon은 첫 번째 초에 일부 패킷을 표시하고 약 30 초 동안 정지하며 최대 약 60-75 MiB / s를 구축합니다. CPU는 약 60 %입니다.

rsync같은 성능으로 사용하려면 무엇을 변경해야 cp합니까?

답변:


20

나는 이러한 차이점이 cp와 사이에 상당히 잘 확립되어 있다고 생각합니다 rsync. 이 기사를 참조하십시오. 제목 은 rsync performance 입니다.

발췌 :
The four commands tested were:

    rsync $SRC $DEST
    echo $SRC | cpio -p $DEST
    cp  $SRC $DEST
    cat $SRC > $DEST/$SRC

The results for rsync, cpio, cp, and cat were:

user    sys     elapsed hog MiB/s   test
5.24    77.92   101.86  81% 100.53  cpio
0.85    53.77   101.12  54% 101.27  cp
1.73    59.47   100.84  60% 101.55  cat
139.69  93.50   280.40  83% 36.52   rsync

나는 rsync매일 사용합니다. 상황을 개선하기 위해 할 수있는 일이 있습니다.

예를 들어 -W스위치를 사용해보십시오 .

-W, --whole-file            copy files whole (w/o delta-xfer algorithm)

또한 3.x 버전이 있는지 확인하는 것이 좋습니다 rsync. 최신 버전으로 업그레이드 할 때 눈에 띄게 개선되었습니다.


15

rsync를 cp와 동일한 성능으로 만드는 방법은 "cp"라는 철자를 사용하는 것입니다.

순 효과가 동일하더라도 두 명령의 차이는 중요합니다. 특히, rsync는 일부 파일 또는 파일의 일부를 복사해야하는지 여부를 확인하기 위해 많은 읽기를 수행합니다.

rsync를 사용하려는 이유가 있습니까? cp는 "맹목적으로"복사하기 때문에 더 높은 원시 성능을 볼 수 있습니다. 일련의 트리거링 조건에 대해 rsync의 "델타 전송"메커니즘을 사용하면보고 방식에서 전송률이 떨어지고 CPU 사용량이 크게 증가하는 것을 볼 수 있습니다.


나는 행동을 알고 있지만 그러한 영향을 기대하지는 않았습니다. 복사 할 파일이 존재하지 않으면 CPU-Power 및 IOPS rsync가 적어도 300 MiB / s에서 수행되어야한다고 생각했습니다. 아직 테스트를 완료하지 않았습니다. rsync로 백업하는 것이 더 편리하지만 cp, dd 또는 생각 나는 것을 사용하여 스크립트를 작성할 수도 있습니다. 이제 다른 파일 시스템에서 다양한 가능성을 테스트하여 가장 적합한 것을 평가하고 싶습니다.
soulpath

6
당신은 저를 경험주의 자라고 부를 수 있지만, 당신의 기대와 현실이 일치하지 않을 때, 일반적으로 오해하는 것은 현실이 아닙니다. 이 형벌을받을 수있는 데에는 12 가지 이유가 있습니다. SAN에서 인터리빙 읽기 및 쓰기조차도 소프트웨어의 세부 사항에 따라 성능이 크게 저하 될 수 있습니다.
msw

3
현실에 대해서는 의문의 여지가 없었지만 rsync-에 관한 것입니다. 그러나 이러한 차이점으로 인해 cp와 일부 체크섬을 사용하여 스크립트를 작성하겠습니다. 조언 해 주셔서 감사합니다!
soulpath

아니요, 네트워크 파일 시스템에서 rsync를 사용하지 마십시오. 컴퓨터가 전체 파일을 다운로드해야하므로 rsync의 모든 이점을 잃게됩니다.
Giacomo Catenazzi

슬프게도이 답변은 자세하게 잘못되었습니다. "로컬"파일 시스템간에 복사 할 때 (이 경우 NFS 마운트는 로컬 파일 시스템 임)를 사용하여이 역효과적인 작업을 명시 적으로 활성화하지 않으면 복사 할 때 rsync 대상 파일을 읽지 않습니다--whole-file . 이 상황에서는 매우 느립니다 cp.
roaima
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.