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