1Gbit LAN을 통해 연결된 두 개의 데비안 리눅스 컴퓨터가 있습니다. wget
어느 방향 으로든 약 100MB / s 의 원시 HTTP 파일 전송으로 이것을 측정 할 수 있습니다 .
내가 지금 사용하면 scp
압축하지 않은 최대 값은 약 15MB / s 입니다. -C
플래그를 사용하여 압축을 활성화 하면 내용에 따라 최대 50MB / s가 됩니다.
아직도, 여기에 낭비되는 대역폭 이 많이 있습니다. 나는 매우 큰 로그 파일 전송에 대해 정말로 생각하고 얼마나 느리게 느린 지 깨달을 때까지 오랫동안 귀찮게하지 않았습니다 scp
. scp
모든 인프라가 설정되어 있기 때문에 회사 환경에서도 자연스럽게 사용할 수 있습니다.
scp의 성능이 그 정도를 어떻게 제한합니까? 암호화로 인해 CPU가 바인드 되었습니까? 내가 사용할 때 htop
멀티 코어 CPU를 사용하지 않는 것처럼 보이며 4 개의 CPU 중 하나만 최대입니다.
처리량을 늘리는 방법이 있습니까? HTTP 서버와 삼바를 사용할 수 있지만 Linux 컴퓨터간에 파일을 이동하기 위해 일반적으로 SSH를 사용합니다. 그러나 이것은 이제 그것에 대해 생각하게합니다. 대량의 데이터에 대한 다른 전송 방법을 고려해야 할 것 같습니다.
HTTP는 PHP / Java / 특정 응용 프로그램에만 사용되며 삼바는 Windows 컴퓨터에서 액세스해야하는 특별한 이유로 사용됩니다.
답변
아마도 암호화 일 것입니다. 다른 암호로 scp를 시도 할 수 있습니다. 예를 들면 다음과 같습니다.
scp -c arcfour src dest
사용 가능한 암호는 ssh_config 매뉴얼 페이지를 확인하십시오. RC4 (arcfour)는 빠른 암호이지만 일부 대안만큼 안전하지는 않습니다.
답변
그 중 일부는 OpenSSH의 내부 구현과 관련이있을 수 있습니다. 병목 현상의 한 가지 이유에 대한 적절한 설명 과 HPS-SSH 를 살펴보고 이를 해결할 수있는 OpenSSH에 패치를 적용하십시오 (패치 및 소스에서 기꺼이 다시 빌드하려는 경우).