분할 전송을 지원하는 FTP 클라이언트를 사용할 것
FTP 서버의 버퍼와 병렬 파일 전송 개수를 늘릴 것
폐쇄망에서는 암호화(SFTP)를 사용하지 말것
1. (FTP Client) 분할 전송 지원 사용
FTP 전송속도 향상을 위해서는 병렬 파일 전송 뿐만 아니라 분할 파일 전송이 가능해야 함
(참고) FTP 전송의 이해
분할 파일 전송은 FTP 클라이언트가 지원해 주어야 함
오픈소스 분할전송 지원 FTP Client 목록 : lftp, Rclone, ... (FTP 전송의 이해 → FTP 클라이언트 비교표 참고할 것)
FileZilla FTP Client 를 포함한 대부분의 오픈소스 FTP Client 는 분할 파일 전송을 지원하지 않음
(참고) 분할 파일 전송은 FileZilla 오픈소스 커뮤니티에서 2005년부터 그 필요성이 무수히 제기되었으나, 지난 17년 동안 Feature Request 가 Reject 되었음
FTP 클라이언트를 자체 개발하는 경우, 분할 다운로드를 지원하도록 해야 함
2. (FTP Client) 병렬 파일 전송 수 높게 설정
(참고 1) FileZilla FTP 클라이언트 병렬 전송 설정
- Settings → Transfers → Concurrent transfers : 2~10
- https://forum.filezilla-project.org/viewtopic.php?t=7152
FileZilla FTP Client 는 병렬 전송은 지원하지만 분할 전송은 지원하지 않음
3. (FTP Server) 버퍼 및 병렬 파일 전송 개수 높게 설정
(참고 1) FileZilla Server buffer 설정 메뉴
- Settings → Miscellaneous → Internel transfer buffer size, Socket Buffer Size
- https://forum.filezilla-project.org/viewtopic.php?t=53958
(참고 2) FileZilla Server buffer 설정 값
(참고 3) FileZilla Server 의 Number of User 기본값은 0 (무제한임)
4. SFTP 비활성화
SFTP 가 사용하는 OpenSSL 라이브러리의 버퍼가 근거리 전송(LAN)에 최적화 되어 있음
OpenSSL 라이브러리의 버퍼가 너무 작아, SFTP 어플리케이션의 버퍼를 늘려도 효과가 미비함
장거리 전용망 혹은 폐쇄망의 경우 SFTP 를 사용하지 말 것
5. 기타
5.1. 리눅스 TCP 파라미터 최적화
크레오넷 데이터 고속전송 가이드 → 리눅스 네트워크 튜닝 을 참고하여 설정할 것
5.2. 윈도우 TCP 파라미터 최적화
크레오넷 데이터 고속전송 가이드 → 윈도우 TCP 튜닝 을 참고하여 설정할 것
장거리 전송 양단에 윈도우를 활용할 경우 전송 양단에 모두 서버용 운영체제를 활용할 것
- 서버 제품군 중에서는 Windows Server Essentials 이 가장 저렴함 (Windows 10 대비 5배 가격)
- Windows Server Essentials 2019 이후 버전을 사용할 것
- Windows Server Insider Preview 프로그램을 통해 베타판을 다운로드 받아 구매 전 테스트 가능
5.3. 고속 디스크 사용
10Gbps 회선에서는 NVMe 디스크를 사용할 것
디스크 종류 | BUS 속도 | 성능 |
---|---|---|
SATA SSD | 6Gbps | Samsung 860 EVO 순차읽기: 550MB/s / 순차쓰기: 520MB/s |
NVMe (PCIe 3.0 x4) | 32Gbps | Samsung 980 NVMe 순차읽기: 3,100MB/s / 순차쓰기: 2,600MB/s |
5.4. Multi-thread 사용
서버/클라이언트가 가능한 한 쓰레드를 활용하고, 적당한 쓰레드 숫자를 찾을 것
5.5. 미리 파일을 압축해 전송할 것
파일의 압축률이 좋다면, 미리 파일을 압축해 전송하고, 수신단에서 압축을 풀어 사용할 것