SFTP를 통해 서버에서 대용량(1GB) 파일을 다운로드하고 싶습니다. 400Mbit 케이블 연결이 있고 WinSCP를 사용하는 Windows 컴퓨터의 다운로드 속도는 Windows에서 약 32Mbyte/s입니다.
내 Mint Box에서 SFTP를 통해 파일을 다운로드하려고 하면 @10Mbyte/s가 유지됩니다. HTTP를 통해 동일한 파일을 다운로드하려고 하면 전체 대역폭을 얻을 수 있습니다.
두 컴퓨터 모두 동일한 스위치와 동일한 케이블 모뎀 라우터를 통해 연결되어 있습니다. 그들의 핑 값은 동일하고 iperf 비율은 거의 동일합니다. 그들은 모두 이러한 전송 속도를 처리할 수 있습니다. 저는 Raspberry Pi가 아니라 최신 Intel Core i5에 대해 이야기하고 있습니다.
스로틀링은 어떻게든 Linux(Mint Sonya)와 관련이 있을 것입니다. IPTables나 tc에서 이 작업을 수행할 수 있는 규칙을 검색해 보았지만 아무것도 찾지 못했습니다. 또한 저는 Linux에 내장된 IPTable과 QOS에 대한 전문가가 아닙니다.
여기서 병목 현상을 찾아야 합니까? SFTP를 사용하여 최고 속도로 파일을 다운로드하고 싶습니다.
답변1
원본 포스터는 다음 솔루션을 제공합니다.
나는 해결책을 우연히 발견했습니다.
나는 Mint에서 Linux 커널의 이러한 제한적인 동작으로 고통받는 유일한 사람이 아니라고 확신합니다. 그래서 여기에 솔루션을 게시하기로 결정했습니다.
커널 TCP 메모리 설정이 "고속" 인터넷 연결에 최적화되지 않은 것 같습니다. "SFTP Throteling" 또는 "Linux SFTP Download Limited"를 검색하는 나와 같은 "일반인"은 이 질문에 대한 답을 얻지 못합니다. 실제로 이런 일이 일어났습니다.
그래서 저는 TCP 커널 튜닝 옵션(2003년부터)이 있는 TCP 튜닝 웹사이트를 찾았습니다.
https://wwwx.cs.unc.edu/~sparkst/howto/network_tuning.php#Steps
이는 TCP 프로토콜의 송신 및 수신 메모리 소비에 영향을 미칩니다. 이 사이트에는 내 필요에 맞게 조정한 몇 가지 오래된 값이 있습니다.
설정하고
/etc/sysctl.conf
재부팅한 후 웹사이트에 표시된 값인 10MByte/s 이상의 최대 SFTP 속도를 즐길 수 있습니다. 내 생각엔 SFTP가 최대 속도에 도달하려면 HTTP보다 더 많은 메모리가 필요한 것 같습니다.