압축이있는 scp가없는 것보다 왜 느린가요?


11

한 실험실 서버에서 다른 실험실 서버로 CentOS 6.5 VM의 루트 파일 시스템을 저장하는 20GB KVM vdisk 파일 을 전송해야했습니다 . 큰 파일 크기와 한 번 그런 vdisk 파일을 수백 메가 바이트로 압축했다는 사실로 인해 본능적으로 압축 기능을 사용할 수있게 scp되었지만 전송 속도가 다소 느린 것을보고 놀랐습니다. 그런 다음 and 와 bzip2함께 시도 하여 놀랐습니다. 다음은 방법 및 평균 처리량에 대한 요약입니다.sshcat

  • scp -C vm1-root.img root@192.168.161.62:/mnt/vdisks/, 11MB / 초
  • bzip2 -c vm1-root.img | ssh -l root 192.168.161.62 "bzip2 -d -c > /mnt/vdisks/vm1-root.img", 5MB / 초 이보다 낮은 결과는 인터넷 검색을 촉구했습니다.
  • scp -c arcfour -C vm1-root.img root@192.168.161.62:/mnt/vdisks/, 13MB / 초 serverfault에 대한 하나의 답변 에서 -c arcfour제안 된 것과 같은 사용 . 거의 도움이되지 못했습니다. 마지막으로 압축을 비활성화했습니다.
  • scp vm1-root.img root@192.168.161.62:/mnt/vdisks/, 23MB / 초

압축 속도가 더 빨라지지 않아야합니까?

편집 : 왜 그 질문이 다운되었는지 알 수 없습니다. 여기서 배울 것이 있다고 생각했습니다.

ssh(1)@ sven에서 맨 페이지 팁을 받은 후 압축을 포함하지 않는 몇 가지 대체 파일 전송 방법을 시도하여 더 나은 결과를 얻었습니다.

  • cat vm1-root.img | ssh -l root 192.168.161.62 "cat > /mnt/vdisks/vm1-root.img", 26MB / 초

  • nc -l 5678 > /mnt/vdisks/vm1-root.img수신기와 nc 192.168.161.62 5678 < vm1-root.img송신기에서 40MB / s. 포트 5678는 사용 가능한 임의 의 포트 입니다.

사용 nc밝혀졌다하면 빠른 복사하는 방법이 될 수 있습니다!

과거 scp -C에는 내가 생각할 때마다 매우 잘 작동했습니다. 예를 들어, /var/log/messages*몇 GB 크기의 syslog ( )를 전송할 때 . 수백 KB / s의 비 압축 전송률은 1-2 MB / s로 증가합니다. 이 예제는 매뉴얼 페이지에서 지적한 것처럼 느린 연결의 경우에 해당됩니다.

20GB 파티션에 대해 새로 생성 된 vdisk 이미지의 압축 크기가 200MB에 불과한 경우가 있습니다. 약 25MB / s의 전송 속도로 13 분이 아닌 8 초만에 복사가 가능합니다! 분명히 scp압축이 없으면이 경우 비효율적 scp -C이며 훨씬 더 나빠집니다.

여기서 배운 주된 교훈 scp -C은 단지 편의 일 뿐이라고 생각해야한다고 생각합니다. 파일을 상당히 압축 할 수 있으면 먼저 소스에서 압축하고 압축 된 형식을 전송 한 다음 대상에서 압축을 푸는 것이 좋습니다. 압축 및 압축 해제를 빠르게 수행하는 도구 (예 : pbzip2 )가 큰 도움이됩니다.

답변:


9

인용 man ssh(이 사용하는 기준 scp) :

압축은 모뎀 회선 및 기타 느린 연결에서 바람직하지만 빠른 네트워크에서는 속도가 느려집니다.

문제는 데이터를 압축하는 데 더 많은 시간이 걸리고 네트워크를 통해 전송하는 것입니다.


그는 왜 전송 속도가 더 낮은 지 묻고 있었지만, ssh는 실제로 전체 작업에 걸리는 총 시간으로 데이터 크기를 나누고 데이터를 압축하는 부분과 데이터를 복사하는 부분을 분리하지 않으면 서 데이터 크기를 실제로 계산한다고 생각합니다. 회로망.
Ernie

@Ernie : 20MB / s의 속도로 데이터를 전송할 수 있고 압축 속도가 너무 느려 시스템이 15MB / s로만 전송할 수있는 경우 15MB / s로만 전송됩니다. 그것이 전부입니다.
Sven

@Ernie : 인쇄 속도 scp는 압축 / 압축 해제에 소요 된 시간을 포함합니다. 그렇지 않은 경우보고 된 값은 놀라운 것처럼 보입니다.
pdp

0

또한 압축 외에도 nc는 암호화되지 않기 때문에 최고의 속도를 얻습니다. 무손실 압축은 데이터의 중복 섹션을 찾는 데 의존합니다. 네트워크 수준에서 완료 할 때 전체 파일을 먼저 처리 할 때 최대 [버퍼 크기] 바이트를 볼 수있는 위치는 [파일 크기] 바이트입니다. 중복 바이트 문장을 찾아서 크런치 할 수 있습니다.

또한 디스크 이미지를 이동하려면 압축조차도 할당되지 않은 블록을 건너 뛰는 것보다 평범하지 않으므로 ntfsclone / partclone과 같은 파일 시스템 인식 도구를 사용해야합니다. 데이터를 전송할 필요가 없으면 전송 속도가 무한합니다. 또한 Windows 파티션에서 스왑 및 최대 절전 모드 파일을 삭제하거나 정크를 복사하는 것을 잊지 마십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.