(2022~) 항우연 전송성능 개선 (진행중)
(진행중) 항우연 위성정보망 (폐쇄망, 전용선) 데이터 전송 성능 개선
개요
- 항우연 제주 위성추적소 ~ 대전 항우연 본원 간 전송성능 개선
- 대전 항우연 본원 ~ 데이터 수요기관 간 전송성능 개선
- 10Gbps 회선의 WAN 구간에서 윈도우 OS 및 FTP 전송에서 데이터 전송성능 개선
현황
네트워크
- 국가과학기술연구망(크레오넷, KREONET)을 통한 10Gbps 급 폐쇄망(전용선) 구성
- 전용선 양단에 10G급 보안장비를 추가적으로 구성
사용 OS
- 윈도우
전송 프로토콜
- FTP
전송 프로그램
- 자체 개발한 윈도우 FTP 응용 프로그램
(확인요망) 위성 데이터를 수요기관의 서버에 주기적으로 전송하도록 설계됨
문제점
- WAN 구간 데이터 전송 성능 저하 (10G 회선을 충분히 활용하지 못함)
- LAN 구간 성능저하 없음
제약사항
- OS(윈도우)와 전송 프로토콜(FTP) 변경 불가
- 기존에 활용중인 레거시 프로그램을 계속 이용해야 함
- 내부 연구자들의 윈도우 및 FTP 활용 선호
참고
- WAN 구간에서 업로드 / 다운로드 속도가 다르게 나옴
(확인요망) 모 수요 기관은 7Gbps 급으로 데이터를 전송한 이력이 있음
컨설팅
1) 국가과학기술연구망이 제공한 폐쇄망의 성능에 문제가 없음을 확인함 (2022-08-31 iperf 테스트)
2) 레거시 프로그램을 유지하면서 전송속도 향상을 위해서는 FTP에 대한 심층적인 이해 필요
- FTP 전송의 이해 문서 작성 : FTP의 전송 방식 (분할, 병렬 전송), FTP 전송 모드 (업로드, 다운로드, FXP)가 중요함을 확인
- FTP 전송성능 개선 방법 문서 작성
3) (진행예정) 리눅스에서 FTP, GridFTP, HPN-SSH 최대 성능 측정
4) (진행예정) 윈도우 커널 파라미터 튜닝에 대한 이해 및 실험 필요
개선사항 도출
레거시 프로그램 개선사항 도출
- 분할 다운로드 지원
- 서버에 데이터를 넣어주는 형식은 지양하고, 클라이언트에서 서버의 데이터를 다운로드 하도록 할 것
(진행예정) 윈도우 네트워크 파라미터 튜닝 및 개선사항 도출
- 윈도우 서버 제품군의 네트워크 파라미터 튜닝 및 테스트
- 윈도우 데스트톱 OS의 레지스트리 변경을 통한 네트워크 파라미터 튜닝 및 테스트
테스트 장비
순번 | 호스트명 | IP | 스펙 | 비고1 | 비고2 |
---|---|---|---|---|---|
No | hostname | IP | Spec | Etc1 | Etc2 |
1 | KARI 대전 리눅스 ps-220-daej-kari-linux | xxx.xxx.xxx.173 | SMCi/5019s/1U/10G | KISTI 2020000566 | |
2 | KARI 대전 윈도우 ps-220-daej-kari-win | xxx.xxx.xxx.177 | KARI DAEJ (SATA disk only) | ||
3 | KISTI 대전 리눅스 ps-220-daej-kisti-linux | xxx.xxx.xxx.171 | SMCi/5019s/1U/10G | KISTI 2019001229 | |
4 | KISTI 대전 윈도우 ps-220-daej-kisti-win
| xxx.xxx.xxx.179 | DELL/R720/2U/10G | ||
5 | KISTI 제주 리눅스 ps-220-jeju-kisti-linux | xxx.xxx.xxx.174 | SMCi/5019s/1U/10G | KISTI 2020000569 | |
6 | |||||
7 | KARI 제주 리눅스 ps-220-jeju-kari-linux | xxx.xxx.xxx.184 | SMCi/5019s/1U/10G | KISTI 2020000577 | |
8 | KARI 제주 윈도우 ps-220-jeju-kari-win | xxx.xxx.xxx.178 | KARI JEJU (NVMe) |
SMCi/5019s/1U/10G | DELL/R720/2U/10G | KARI DAEJ | KARI JEJU | ||
---|---|---|---|---|---|
CPU | Intel(R) Xeon(R) CPU E3-1220 v6 @ 3.00GHz (4C 4T) | Intel i7 7770 @ 3.4GHz (4C 8T) | Intel i7 11700 @ 2.5GHz (8C 16T, turbo 4.9GHz) | ||
MEM | DDR3 32GB | 8GB | 32GB | ||
DISK (Slow) | Samsung SSD 860 SSD x 2 (SATA, RAID 1) | Samsung 870 EVO 500GB (SATA) | |||
DISK (Fast) | 22GB RAM disk mounted on /var/www/html/tmpfs | Samsung 980 500GB (NVMe) | |||
NIC | Intel X520 10G SFP+ | Aquantia AQtion 10G | Intel X520 10G SFP+ | ||
OS | perfSONAR 4.4.4 ( based on CentOS 7 ) | Windows 10 | Windows 10 | ||
Notes | SATA disk only |
테스트 설정
(리눅스) 공통 설정
네트워크 관련 커널 파라미터 설정
/etc/sysctl.conf
#################################### #Default perfSONAR sysctl settings #################################### net.core.default_qdisc = fq net.core.rmem_max = 67108864 net.core.wmem_max = 67108864 net.ipv4.conf.all.arp_announce = 2 net.ipv4.conf.all.arp_filter = 1 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.default.arp_filter = 1 net.ipv4.tcp_congestion_control = htcp net.ipv4.tcp_mtu_probing = 1 net.ipv4.tcp_no_metrics_save = 1 net.ipv4.tcp_rmem = 4096 87380 33554432 net.ipv4.tcp_wmem = 4096 65536 33554432
MTU 9000
/etc/sysconfig/network-scripts/ifcfg-enp1s0f0
DEVICE=enp1s0f0 ... MTU=9000
호스트파일 변경
/etc/hosts
... xxx.xxx.xxx.173 ps-220-daej-kari-linux xxx.xxx.xxx.177 ps-220-daej-kari-win xxx.xxx.xxx.171 ps-220-daej-kisti-linux xxx.xxx.xxx.179 ps-220-daej-kisti-win xxx.xxx.xxx.174 ps-220-jeju-kisti-linux xxx.xxx.xxx.184 ps-220-jeju-kari-linux xxx.xxx.xxx.178 ps-220-jeju-kari-win
HTTP 병렬 다운로드 프로그램 설치 및 설정
yum -y install axel-2.4-9.el7.x86_64.rpm
/etc/axelrc
buffer_size = 51200
기저트래픽이 있는 구간이라서 max rate 를 낮춤
tc qdisc change dev enp1s0f0 root fq maxrate 9.5gbit
(리눅스) Server 설정
ps-220-daej-kari-linux
swapoff -a mkdir -p /var/www/html/tmpfs mount -t tmpfs -o size=22G tmpfs /var/www/html/tmpfs fallocate -l 10G /var/www/html/tmpfs/10G.bin
ps-220-daej-kari-linux
# df -h /var/www/html/tmpfs Filesystem Size Used Avail Use% Mounted on tmpfs 22G 10G 12G 46% /var/www/html/tmpfs
(리눅스) Client 설정
ps-220-jeju-kari-linux
swapoff -a mkdir -p /var/www/html/tmpfs mount -t tmpfs -o size=22G tmpfs /var/www/html/tmpfs
테스트
순번 | 일시 | 테스트 | 도구 | 옵션 | 성능 | ||||
---|---|---|---|---|---|---|---|---|---|
No | Time | Test | Tool | Option | Performance | ||||
Test 1 | 22-08-31 11:31 | KARI 제주 → KARI 대전 | KARI Jeju → KARI Daejeon | iperf3 | 1 stream | 9.43 Gbps | |||
Test 2 | 22-08-31 11:35 | KARI 대전 → KARI 제주 | KARI Daejeon → KARI Jeju | iperf3 | 1 stream | 9.43 Gbps | |||
Test 3 | 22-08-31 11:44 | KARI 제주 → KARI 대전 | KARI Jeju → KARI Daejeon | HTTP (wget) | 1 stream | 8.32 Gbps (1.04GB/s) | d2d transfer test on ramdisk | ||
Test 4 | 22-08-31 11:43 | KARI 대전 → KARI 제주 | KARI Daejeon → KARI Jeju | HTTP (wget) | 1 stream | 8.00 Gbps (1.00GB/s) | d2d transfer test on ramdisk | ||
Test 5 | 22-08-31 11:54 | KARI 제주 → KARI 대전 | KARI Jeju → KARI Daejeon | HTTP (axel) | 3 stream | 8.14 Gbps (1067184.37 KB/s) | d2d transfer test on ramdisk | ||
Test 6 | 22-08-31 11:51 | KARI 대전 → KARI 제주 | KARI Daejeon → KARI Jeju | HTTP (axel) | 3 stream | 8.93 Gbps (1170187.75 KB/s) | d2d transfer test on ramdisk |