전송성능에 영향을 미치는 요소
CPU 플랫폼
CPU 플랫폼은 컴퓨터를 구성하는 요소들 사이에 데이터가 흐르는 데이터 버스의 대역폭을 결정합니다. 빠른 데이터 전송을 위해서는 저장장치, CPU, 네트워크 카드의 속도도 중요하지만, 시스템 내부의 데이터 버스의 대역폭이 가장 중요합니다.
예를 들어, Intel E3 플랫폼에서는 10G disk-to-disk 전송을 위해서, 컴퓨터 내부에서는 데이터는 다음의 경로를 따라 흐릅니다. Intel E3 플랫폼의 DMI 3.0 x4 버스는 40Gbps, PCIe 3.0 버스는 20 lane 까지 지원하므로, 10Gbps 전송은 손쉽게 진행할 수 있습니다.
150만원 상당의 일반적인 PC로 10Gbps 데이터 전송이 가능함을 확인하였습니다.
저장장치
1Gbps 전송은 일반 하드디스크로도 가능합니다.
10Gbps 이상의 고속 데이터 전송을 위해서 NVMe 드라이브를 추천합니다. 대용량 데이터를 전송해야 하는 경우 SSD 또는 HDD 를 묶은 디스크 어레이 구성이 필요합니다.
100Gbps 이상의 고속 데이터 전송은 디스크 디스크 어레이 구성이 필수입니다
품명 | read | write | |
---|---|---|---|
SATA3 HDD | Seagate IronWolf Pro 7200 | 220MB/s (최대지속 전송속도) = 1.76Gbps | |
SATA3 SSD | 삼성 860 PRO SATA3 SSD | 560MB/s = 4.48Gbps | 530MB/s = 4.24Gbps |
NVMe | 삼성 970 EVO M.2 NVMe | 3,400MB/s = 27.2Gbps | 2,500MB/s = 20Gbps |
삼성 860 PRO SATA3 SSD 4장으로 RAID10 으로 묶은 디스크 어레이는 이론상 1439.03 MB/s = 11.24Gbps 의 성능을 낼 수 있습니다.
운영체체 및 커널튜닝
컴퓨터는 일반적으로 1500바이트 단위로 분할(fragment)해서 데이터를 전송하고, 수신단에서는 이를 조립(defrag)하여 데이터를 완성합니다.1500바이트 분할의 규칙은 1980년대 미국 벨 연구소가 주축이 된 ATM 네트워크 방식에 따른 것이며, 이후의 네트워크도 이를 따르고 있습니다. 이는 네트워크 상태가 불규칙하고 데이터의 손실이 어느정도 발생하는 네트워크에 알맞습니다. 하지만 데이터를 잘게 분할할 수록 컴퓨팅 자원이 많이 소요되어 전송성능이 낮아지게 됩니다. 또한, 전 세계의 Access 네트워크의 대부분은 100Mbps 이하이며, 윈도우나 리눅스 커널에 기본으로 설정된 네트워크 파라미터는 이에 맞추어 설정되어 있습니다. 이 기본값은 1~100Gbps 급의 네트워크 전송과는 거리가 있습니다.
크레오넷은 전용망 혹은 그에 준하는 최적화된 고속 네트워크를 제공합니다. 손실과 지연이 최소화된 망으로, 별도의 커널 네트워크 파라미터 설정이 필요합니다.
전송 소프트웨어
1Gbps 급 데이터 전송에는 scp, rsync, ftp 프로그램을 사용할 수 있습니다.
10Gbps 급 이상의 데이터 전송은 전송에 특화된 GridFTP와 같은 별도의 전송 프로그램 사용을 추천합니다. GridFTP는 단일 또는 복수의 호스트에서 FTP 데몬을 병렬로 실행하여 복수의 TCP 스트림으로 데이터를 전송합니다. 상용으로는 Aspera(IBM), Zettar 등이 있습니다.