nfs-share에서 로컬 디렉터리로 파일을 복사할 때 rsync가 cp에 비해 매우 느립니다(8~10배).

nfs-share에서 로컬 디렉터리로 파일을 복사할 때 rsync가 cp에 비해 매우 느립니다(8~10배).

VM 스토리지를 위한 새로운 백업 서버가 되어야 하는 새로 설치된 Ubuntu 서버가 있습니다. 서버에는 4개의 NIC가 있으며 그 중 2개는 SAN에 연결하는 데 사용되는 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-75MiB/s까지 구축됩니다. CPU는 60%정도 됩니다.

rsync와 동일한 성능을 사용하려면 무엇을 변경해야 하며 변경할 수 있습니까 cp?

답변1

cp나는 이러한 차이점이 와 . 사이에 상당히 잘 확립되어 있다고 생각합니다 rsync. 이 기사를 참조로 참조하세요.rsync 성능 살펴보기.

발췌:
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. 최신 버전으로 업그레이드하면서 눈에 띄는 개선이 이루어졌습니다.

답변2

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

최종 효과는 동일하더라도 두 명령 간의 차이는 중요합니다. 특히 rsync는 일부 파일이나 파일의 일부를 복사해야 하는지 여부를 확인하기 위해 많은 읽기 작업을 수행합니다.

rsync를 사용하려는 이유가 있나요? cp는 "맹목적으로" 복사하기 때문에 더 높은 원시 성능을 볼 수 있습니다. 일련의 트리거 조건에 대해 rsync의 "델타 전송" 메커니즘이 사용되는 경우 보고한 방식으로 전송 속도가 떨어지고 CPU 사용이 상당히 증가하는 것을 볼 수 있습니다.

답변3

이 사용 사례의 경우 rsync불필요하게 복잡한 시스템입니다. 파일 수정 시간과 파일 크기 비교를 기반으로 한 동기화에 문제가 없으면 양쪽 끝에서 파일 시스템 메타데이터만 수집하여 비교하고 변경된(또는 새) 파일을 (로컬) 명령으로 복사해야 합니다 cp.

이 작업을 수행하는 작고 간단한 동기화 장치에 관심이 있을 수 있습니다.Fitus/Zaloha.sh

다음과 같이 사용됩니다:

$ Zaloha.sh --sourceDir="test_source" --backupDir="test_backup"

분석 단계의 최대 속도를 위해 복원 스크립트 생성을 건너뛸 수도 있습니다. 옵션을 사용하십시오 --noRestore. 또한 빠른 버전을 설치한 경우 이를 사용할 수 있는 mawk옵션을 제공하세요 .--mawk

Zaloha.sh명령을 통해 파일 시스템 메타데이터를 수집합니다 find. 남은 질문 중 하나는 findNFS 공유의 성능에 관한 것입니다.

관련 정보