순수한 cp 또는 scp에 비해 왜 rsync가 너무 느립니까?


15

나는 공유 (공유가 장착 장착을 통해 Windows 7로 리눅스에서 파일을 transfering있어 에서 윈도우 내 LAN 내에서 새 시스템으로 이전부터 많은 양의 데이터 (즉, 거의 TB)를 복사하고 있습니다 .. 리눅스) . 나는 100MBit 만 가지고 있다고 이미 불행합니다. 당연히 나는 맹목적으로 rsync를 사용했지만 하루가 지나면 왜 느리게 느껴지는 지 궁금해했습니다. 진행 미터를 활성화하면 약 2MB / s의 전송 속도가 나타났습니다.

그래서 합리적인 큰 파일 (800MB)을 가져 와서 전송 타이밍을 추적했습니다 (1).

cp : 05:33
scp (2): 06:33
rsync : 21:51

1) 각 실행 사이에 파일을 삭제했습니다.
2) 로컬 호스트를 통해 scp를 동일한 Linux 시스템으로 직접 공유에 저장하십시오. 완전히 쓸모는 없지만 진행 미터를 제공

테스트는 다음과 같이 간단했습니다

(cp|scp|rsync) <source> <destination>

scp에 대한 호스트 / 포트를 제외하고 특별한 인수는 없습니다. 나는 -Wrsync 스위치를 시도했지만 10 분 후에 취소되었습니다. rsync는 Lenny에서 3.0.3입니다. 언제든지 복사 프로세스를 중단하고 다시 시작할 수 있기 때문에 rsync로 이어지지 만 이제이 요구 사항을 심각하게 재고해야한다고 생각합니다.

어떻게 큰 차이가 있을까요?

업데이트 / 해결 :

rschuler 덕분에 문제를 해결할 수있었습니다. 효율적인 이유로 smb 마운트 대신 rsync 데몬을 사용하십시오. 델타 카피는 작동하지만 몇 가지 사항을주의해야합니다.

  • 멋진 GUI 래퍼이지만 문제가 발생하면 해결 방법을 아는 것이 좋습니다. rsync 서비스를 실행할 사용자 자격 증명을 입력 한 것 같지만 처음에는 잘못했지만 GUI에서 새 자격 증명을 설정할 수 없었습니다. 서비스로 실행되고 적절한 자격 증명을 설정할 수 있다는 것을 알았습니다.
  • 연결을 허용하기 위해 포트를 방화벽에 수동으로 추가해야 함
  • 개인 취향 : 공유가 암호로 보호되어 있거나없는 경우 서비스가 Windows로 자동 시작되지 않도록하십시오. 만약을 위해서
  • 랩핑 된 rsync 바이너리는 기본 Windows 포트가 아니지만 cygwin을 기반으로합니다. 그러나 포함 된 cygwin DLL은 UTF8을 올바르게 처리하지 않으며 ASCII가 아닌 문자를 엉망으로 만듭니다. http://www.okisoft.co.jp/esc/utf8-cygwin/ 에서 고정 DLL을 가져옵니다 .

그 후, 전송 등급은 2MB / s에서 ~ 8MB / s로 급등했습니다. 절대적으로 환상적입니다!


테스트를 실행할 때마다 대상 파일을 삭제 했습니까? 대상 파일이 이미 존재하고 메타 데이터가 올바르지 않은 경우 소스와 대상을 모두 체크섬해야합니다.
Zoredache

@ Zoredache : 실행 사이에 파일을 삭제했습니다. 또한 -W스위치는이를 무시해야합니다.
Mark

답변:


18

(공유는 Linux의 Windows에서 마운트 됨)

그게 당신의 문제입니다. rsync가 대상에서 롤 체크섬을 수행하고 있습니다. 창문이 공유됩니다. 체크섬을 계산하기 위해 네트워크를 통해 모든 데이터를 가져옵니다. (아마도 두 번 이상).

두 머신 모두에서 rsync를 실행해야합니다. 이렇게하면 차이 (및 체크섬) 만 네트워크 케이블을 통해 전송됩니다. 델타 카피 는 윈도우 화 된 rsync입니다. 당신이 갈 수있는 충분한 문서가 있습니다.

rsync를 잘못 사용하고 있다고 생각하는 이유를 더 잘 설명 하려면이 질문에 대한 투표권을 확인하십시오 .


빙고, 당신의 대답은 요점을 넘어 설 수 없었습니다. 고마워, 나는 교훈을 배웠다.
마크
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.