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

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

가상 머신 스토리지를 위한 새로운 백업 서버로 사용되는 Ubuntu 서버를 새로 설치했습니다. 서버에는 4개의 네트워크 카드가 있으며 그 중 2개는 SAN 연결을 위한 10Gbit(실제로 최신 드라이버가 포함된 Intel x540-T2)입니다. nfs-share를 로컬에 설치하고 30개 정도의 파일과 15개 정도의 가상머신 이미지, 해당 로그 파일이 들어있는 디렉토리를 복사할 때의 속도 차이를 비교해봤습니다. 이미지 크기는 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. 또한 Express 설치 프로그램이 설치되어 있는 경우 이를 사용 mawk하도록 선택하세요 .--mawk

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

관련 정보