통큰아이 서버를 사용하고 있습니다.
전송대역폭은 30Mbps입니다.
해외전송에는 속도 저하가 있다곤 하지만 국내 서버로의 전송도 크게 다르지 않습니다.
rsync -avzP 명령어로 테스트해보면 약 100메가 짜리 압축 파일인데
5초 안에 10Mb/s 대에서 4kB/s로 뚝 떨어집니다.
speedtest-cli로 테스트해보면 할 때마다 편차가 있습니다만
다운로드는 192Mbit/s, 70Mbit/s 나오는 건 문제가 없는데,
업로드가 9Mbit/s, 14Mbit/s 찍힐 때도 있지만 실제로 rsync할 때는 그 속도가 5초 안에 금방 떨어져서 파일을 다운로드할 수가 없을 정도입니다. (rsync, scp 동일하게 5kB/s 정도 속도입니다.)
FTP는 조금 그 사정이 낫긴 합니다. 지난 일요일에는 3MiB/s 정도 나올 때도 있었는데, 요즘은 3-4M 나오다가,
지금은 100M 정도 나옵니다. (음..?)
https://github.com/librespeed/speedtest
웹에서 speedtest를 실행해보면, 이렇게 잘 됩니다. 웹에서 파일매니저를 실행해도 저 정도는 나오는거 같습니다.
웹에서 직접 다운로드할 때나, FTP는 괜찮은데.
서버에서 서버로 내보내기할 때는 속도가 그만큼 안 나오는 거 같습니다.
국내서버(vultr, 서울리전), 해외서버 둘다 테스트해봤습니다만 그 현상은 비슷했습니다.
# iperf3 테스트
서버에 iperf3 를 설치하고 iperf3 -s 서버에서 실행해준 뒤
제 컴퓨터에 iperf3를 설치하고 iperf3 -c 아이피 실행해서 테스트해보면
해외서버에서 통큰으로 iperf3 -c 아이피로 테스트해보면 아래와 같습니다.
해외라도 20메가는 나와주고 있다는 건데
rsync, scp만 느린 건 이해가 안되는데요.
rsync 대역폭 제한하기 - 스마일서브 IDCHOWTO닷컴
이런걸 서버 자체에서 제한할 수도 있는 걸까요?
scp -c aes128-ctr -r -l 3000
scp 명령어에서 속도 제한을 걸거나(3메가), 암호화 방식 옵션을 사용해봐도 전송 속도는 동일했습니다.
sudo sysctl -w net.core.rmem_max=16777216
sudo sysctl -w net.core.wmem_max=16777216
sudo sysctl -w net.ipv4.tcp_rmem="4096 87380 16777216"
sudo sysctl -w net.ipv4.tcp_wmem="4096 65536 16777216"
TCP 설정을 해도 동일했습니다.
Vultr 서울지점은 똥큰아이 입장에서 국내서버가 아닙니다. 국내 기관이 KISA에 등록한 대역이 아니니까요. 당연히 어마무시하게 쓰로틀링이 들어갑니다. 지금은 어떤지 모르겠지만, 몇 년 전에는 AWS 서울지점도 쓰로틀링하는 패기를 보여주던 업체입니다. (AWS는 더이상 업계에서 무시할 수 없게 되었지만, Vultr는 다른 데서도 많이 쓰로틀링합니다.)
포트에 따라 쓰로틀링 강도가 다릅니다. 주로 암호화 통신을 하는 https를 더 심하게 하더군요. 구글 fcm 등 https 기반의 해외 api는 실사용이 불가능한 수준이었습니다. scp와 rsync도 ssh 포트로 암호화 통신을 하니 비슷할 것 같습니다.