scp를 더 빠르게 만드는 방법은 무엇입니까?

scp를 더 빠르게 만드는 방법은 무엇입니까?

나는 다음 명령을 사용하여 홈 네트워크를 통해 파일을 전송합니다(많은 파일을 전송해야 할 때 일반적으로 유틸리티를 사용하여 보관합니다 tar).

scp -c blowfish [FILE] [USER]@[ADDRESS]:[PATH]

500Mb의 데이터를 다른 컴퓨터로 보내는 데 약 25분이 걸립니다. 평균 속도는 약 600KB/s입니다. 저는 10분 이내에 웹에서 1Gb 파일을 편안하게 가져올 수 있다고 믿지 않지만 500Mb 파일을 얻을 수 없기 때문에 프로세스를 더 빠르게 진행할 수 있는 방법이 반드시 있어야 한다고 생각합니다. 그 시간 내에 네트워크를 통해 파일이 전송됩니다.

답변1

두 가지 아이디어:

  1. 다른 암호로 실험해 보세요.
  2. '즉시' 압축 사용

1. 다른 암호로 실험해 보세요.

한 가지 아이디어는 사용 가능한 다양한 암호를 테스트 scp하고 가장 빠른 암호를 결정하는 것입니다. (이에 대한 아이디어는 시간이 걸리는 데이터 암호화라는 것입니다.) 다음을 실행하여 사용 가능한 암호를 찾으십시오.

andrew@athens:~$ ssh -Q cipher
3des-cbc
blowfish-cbc
cast128-cbc
arcfour
arcfour128
arcfour256
aes128-cbc
aes192-cbc
aes256-cbc
[email protected]
aes128-ctr
aes192-ctr
aes256-ctr
[email protected]
[email protected]
[email protected]
andrew@athens:~$ 

이는 기본 Xenial Xerus 설치에서 사용 가능한 암호를 표시하며 이미 제안한 구문을 사용하여 추가할 수 있습니다.

scp -c <cipher> [FILE] [USER]@[ADDRESS]:[PATH]

이 옵션은 직접 전달되어 사용 가능한 암호에 대해 ssh테스트합니다 . ssh전송 속도를 높일 수 있는 암호를 찾을 수 있기를 바랍니다. 이 암호를 찾았으면 ~/.ssh/config매번 입력하는 대신 암호를 입력할 수 있습니다.

2. '즉시' 압축을 사용합니다.

scp'즉시' 전송을 압축할 수 있습니다. 즉, 압축은 전송 중에만 사용되며 호스트나 원격 끝에서는 볼 수 없습니다. 옵션 을 사용하여 이것을 추가하십시오 -C:

scp -c <cipher> -C [FILE] [USER]@[ADDRESS]:[PATH]

다음은 내 시스템의 예입니다.

debug1: compress outgoing: raw data 365865, compressed 150118, factor 0.41
debug1: compress incoming: raw data 150118, compressed 365865, factor 2.44

압축 수준은 에 사용된 것과 동일 gzip하며 실제로 실험하고 싶다면 1~9까지 다양한 'CompressionLevel' 옵션을 사용할 수 있습니다. 1은 가장 빠른 압축이고 9는 가장 느린 압축이며 6은 압축 수준이 가장 좋습니다. 기본. 이는 다음과 같이 설정할 수 있습니다 ~/.ssh/config.

Host *
Compression yes
CompressionLevel 9

이는 높은 압축률을 설정한다는 점을 명심하십시오.모두 scp / ssh전송, 원하는 경우 개별 호스트에 대해 설정할 수 있습니다...

-v변경 사항의 효과를 조사하려면 이 옵션을 사용하십시오 . 실험을 통해 데이터마다 압축 비율이 다르다는 사실을 알게 될 것입니다.

관련 정보