대역폭과 트래픽이 재는 것
주문 화면에 같이 나오는 두 말은 같은 양을 재지 않습니다. 대역폭은 Mbps 또는 Gbps로 적히고, 1초에 얼마나 빨리 갈 수 있는지를 답합니다. 트래픽은 GB 또는 TB로 적히고, 한 시간, 하루, 한 달에 바이트가 얼마나 움직였는지를 답합니다.
포트를 차선의 제한 속도로, 월간 트래픽을 달린 거리로 보면 됩니다. 제한 속도가 그대로여도 차선이 계속 바쁘면 거리는 늘어납니다. 거리 미터를 멈춰도 제한 속도 표지는 남아 있습니다.
청구서의 트래픽 무제한은 월간 바이트 합계를 별도 항목으로 더하지 않는다는 뜻입니다. 포트를 임의의 속도로 바꾸지는 않습니다. 250 Mbps 단계는 어느 1초에도 상한이 250 Mbps입니다. 1 Gbps와 2 Gbps도 같고, 달라지는 것은 상한 숫자와 월 추가 요금입니다. 세 단계 모두 트래픽을 다시 청구하지 않습니다.
속도 측정 페이지는 몇 초에서 수십 초 동안 포트를 채우려 합니다. 결과가 구매 단계에 가까우면, 그 짧은 시간 동안 경로가 그 속도에 닿았다는 뜻입니다. 결과가 훨씬 낮으면, 포트를 의심하기 전에 측정 지점과 다운로드인지 업로드인지를 먼저 봅니다. 한 번의 측정은 한 달 내내 그 속도가 필요하다는 증거가 아니고, 장비 자신의 바이트 카운터를 대신하지도 않습니다.
세 포트가 각각 얼마나 빠른가
환산은 십진법입니다. 1 Mbps는 초당 백만 비트입니다. 8로 나누면 초당 백만 바이트, 흔히 말하는 MB/s가 됩니다. 250 ÷ 8 = 31.25이므로 250 Mbps를 가득 채우면 약 31.25 MB/s입니다. 1 Gbps는 1000 Mbps로 보아 약 125 MB/s, 2 Gbps는 약 250 MB/s입니다.
1 GB 파일을 1000 MB로 세면, 250 Mbps를 가득 채운 상태에서 약 32초입니다. 같은 파일은 1 Gbps에서 약 8초, 2 Gbps에서 약 4초입니다. 경로 전체와 상대, 디스크, 애플리케이션이 따라올 때의 이야기입니다. 디스크나 상대가 더 느리면 포트는 아직 상한에 닿지 않았고, 파일 시간도 이 초까지 줄지 않습니다.
월간 전송량도 같은 단위로 어림합니다. 30일 동안 속도를 가득 채운 채로 달릴 때입니다.
TB = Mbps × 86400 × 30 ÷ 8 ÷ 1000000
86400은 하루의 초입니다. 먼저 비트가 되고, 8로 나누면 바이트, 1,000,000으로 나누면 TB입니다. 여기서 1 TB = 1000 GB, 1 GB = 1000 MB이며 위의 MB/s와 맞습니다. 250, 1000, 2000을 넣으면 81 TB, 324 TB, 648 TB입니다. 이것은 포트가 30일 내내 쉬지 않고 가득 찼을 때만 나오는 합계이고, 트래픽을 따로 청구하지 않는 거리가 얼마나 되는지를 보여 줍니다. 업무에 충분한지는 다음 절의 혼잡 시간 샘플로 판단합니다.
| 포트 | 가득 찬 속도 | 30일 연속 | 월 추가 요금 |
|---|---|---|---|
| 250 Mbps | 31.25 MB/s | 81 TB | $0 |
| 1 Gbps | 125 MB/s | 324 TB | $245.0 |
| 2 Gbps | 250 MB/s | 648 TB | $742.7 |
NIC 협상 속도는 다른 숫자입니다. Linux의 /sys/class/net/NIC이름/speed는 종종 1000이나 10000을 보여 주며, NIC와 스위치 사이가 1 Gbps 또는 10 Gbps로 협상됐다는 뜻입니다. 이 파일은 구매한 포트를 돌려주지 않습니다. 10 Gbps NIC를 달아도 구매 포트는 250 Mbps일 수 있습니다. ethtool이나 이 speed 파일로 250 Mbps를 샀는지 확인하면 맞지 않습니다. 제한하는 지점이 다르기 때문입니다.
혼잡 시간에 가득 찬 뒤에 올린다
한 단계 올리는 근거는 업무 혼잡 시간에 포트가 기다림의 원인인지입니다. 평소에는 초당 몇 메가비트인데 백업 창에서 업로드가 250 Mbps에 계속 붙어 있으면, 늘어난 것은 백업이고 볼 방향은 송신입니다. 사용자가 설치 파일을 받는데 수신이 상한에 붙어 페이지가 줄 서면, 볼 방향은 수신입니다. 방향마다 포트 숫자와 따로 비교합니다. 수신과 송신을 더한 뒤 250과 비교하면 두 방향을 하나의 부풀린 수로 겹칩니다.
샘플은 실제로 바쁜 구간에 둡니다. 한산한 오후의 한 번이 아닙니다. 백업은 밤에, 배포는 정해진 시각에, 방문 피크는 업무 시간대를 따릅니다. 짧은 샘플을 이어 높은 쪽이 얼마나 오래 머무는지 봅니다. 1~2초 상한에 닿았다가 바로 내려오면 버스트입니다. 백업이나 방문 창 전체에서 높은 쪽이 포트 숫자 근처에 오래 머물고 그 창이 포트 때문에 늘어나면, 그 단계는 부족합니다.
60퍼센트는 읽을 때의 기준선이고 청구서에는 적히지 않습니다. 250 Mbps의 60퍼센트는 약 150 Mbps, 1 Gbps는 약 600 Mbps, 2 Gbps는 약 1200 Mbps입니다. 혼잡 창에서 높은 쪽의 샘플이 대부분 이 선 아래이면 포트에 여유가 있습니다. 이 선을 자주 넘고 포트 숫자에 여러 번 붙어 있으면 다음 단계를 봅니다.
| 혼잡 시간에 보인 것 | 처리 |
|---|---|
| 높은 쪽이 대부분 포트의 60퍼센트 아래이고, 가끔 닿았다가 바로 내려옴 | 현재 단계 유지 |
| 백업, 동기화, 배포 창 전체에서 송신 또는 수신이 250 Mbps에 붙어 있음 | 1 Gbps를 봄 |
| 이미 1 Gbps인데 같은 종류의 창이 아직 1000 Mbps에 붙어 있음 | 2 Gbps를 봄 |
| 속도 측정은 한 번 가득 차지만, 업무 카운터는 피크에도 낮음 | 현재 단계 유지 |
| 디스크나 상대가 먼저 가득 차고, 포트 샘플은 구매 단계보다 훨씬 낮음 | 디스크나 상대를 먼저 보고, 포트는 그대로 둠 |
250 Mbps에서 1 Gbps로 올리면 가득 찬 바이트 속도는 약 4배가 됩니다. 1000 ÷ 250 = 4이기 때문입니다. 1 Gbps에서 2 Gbps로는 다시 약 2배입니다. 파일이 그 배수로 짧아지는지는 디스크와 상대가 받아 줄 수 있는지에 달립니다. 샘플이 이미 상한에 붙어 있고 디스크 처리량에 여유가 있을 때, 한 단계 올리면 그 시간이 줄어듭니다. 샘플이 단계보다 훨씬 낮고 디스크가 이미 가득 차 있으면, 포트를 키워도 파일 시간은 디스크가 정한 대로 남습니다.
받은 뒤에 카운터로 확인
콘솔 첫 줄 주소가 올라간 NIC의 카운터를 읽습니다. 주소를 먼저 나열하고, 아래 명령의 NIC 이름을 그 첫 줄을 가진 것으로 바꿉니다. eno1은 자리표시자입니다.
ip -br addr
10초 샘플이면 이 짧은 구간이 포트에 붙어 있는지 판단할 수 있습니다. 시작과 끝의 수신 바이트, 송신 바이트 차이를 10으로 나누면 초당 바이트가 됩니다. 8을 곱하고 1,000,000으로 나누면 Mbps입니다. 수신과 송신은 각각 한 줄로 찍습니다.
DEV=eno1
RX1=$(cat /sys/class/net/$DEV/statistics/rx_bytes)
TX1=$(cat /sys/class/net/$DEV/statistics/tx_bytes)
sleep 10
RX2=$(cat /sys/class/net/$DEV/statistics/rx_bytes)
TX2=$(cat /sys/class/net/$DEV/statistics/tx_bytes)
awk -v rx1="$RX1" -v rx2="$RX2" -v tx1="$TX1" -v tx2="$TX2" 'BEGIN {
printf "in %.1f Mbps\n", (rx2-rx1)/10*8/1000000
printf "out %.1f Mbps\n", (tx2-tx1)/10*8/1000000
}'
혼잡 창에서는 1~2분마다 반복하고, 높은 쪽의 숫자 묶음을 남깁니다. 한 번보다 낫습니다. 밤 백업은 시작된 뒤에, 낮 방문은 가장 많은 한 시간에 잽니다. 한가할 때 0에 가까운 값은 그때 업무가 없었다는 뜻만 있습니다. 포트가 크다는 뜻은 아닙니다.
하루의 모양을 보려면 vnstat을 설치하고, 혼잡한 날을 적어도 하루 덮은 다음 시간 단위로 읽습니다. 설치 직후 한 시간에는 이력이 없어서 어제를 판단할 수 없습니다.
vnstat -i eno1 -h
Windows에서는 연결되어 있고 주소가 콘솔 첫 줄과 같은 어댑터에서 같은 10초 차이를 냅니다. 이름은 Get-NetAdapter에서 Status가 Up이고 주소가 맞는 것으로 바꿉니다.
$n = "Ethernet"
$a = Get-NetAdapterStatistics -Name $n
Start-Sleep -Seconds 10
$b = Get-NetAdapterStatistics -Name $n
"in {0:N1} Mbps" -f (($b.ReceivedBytes - $a.ReceivedBytes) * 8 / 10 / 1000000)
"out {0:N1} Mbps" -f (($b.SentBytes - $a.SentBytes) * 8 / 10 / 1000000)
확인은 이 순서입니다.
- 01 주문의 포트가 250 Mbps, 1 Gbps, 2 Gbps 중 무엇인지 확인합니다. NIC speed 파일은 이 단계에 넣지 않습니다.
- 02 콘솔 첫 줄 주소를 가진 NIC 또는 어댑터를 찾습니다.
- 03 백업, 동기화, 방문 피크에서 10초 샘플을 여러 번 하고, 수신과 송신을 따로 적습니다.
- 04 높은 쪽이 대부분 그 단계의 60퍼센트 아래이면 현재 단계를 유지합니다. 창 전체가 포트 숫자에 붙어 있으면 다음 단계를 봅니다.
- 05 포트 샘플은 여전히 낮은데 작업이 느리면, 대역폭을 올리기 전에 디스크와 상대를 봅니다.
대역폭 추가 요금이 월 요금에 들어가는 방식
포트 단계는 메모리, 디스크, 주소, 운영체제와 함께 월 합계에 더한 뒤, 기간의 월 수를 곱합니다. 월 결제는 1, 분기 결제는 3, 반년은 6, 연간은 12입니다. 어느 기간도 할인하지 않고 설치비도 없습니다. 세 단계 모두 TB 단위로 다시 청구하지 않으므로, 단계를 올리면 늘어나는 것은 포트의 월 요금이지 사용량 잔액이 아닙니다.
128GB 월 요금은 $454.8입니다. 기본 1TB NVMe 두 장은 각각 직결이고 하드웨어 RAID가 없습니다. 사용 가능 용량은 두 장을 더한 2TB입니다. 대역폭을 250 Mbps에 두면 월 추가 요금은 $0입니다. 1 Gbps로 바꾸면 월 $245.0이 더해져 이 장비의 월 요금은 $699.8이 됩니다. 분기는 $2,099.4, 연간은 $8,397.6입니다. 2 Gbps로 바꾸면 월 $742.7이 더해집니다. 디스크와 주소를 더하지 않고 무료 운영체제를 쓰면 월 요금은 $1,197.5입니다. 256GB 월 요금은 $612.7이고 메모리는 DDR4-3200 ECC RDIMM입니다. 두 단계는 주문할 때 고릅니다. 프로세서는 AMD EPYC 7543P, 32코어 64스레드, 2.8에서 3.7 GHz입니다. 추가 2TB NVMe는 한 장에 월 $84.7, 최대 두 장이며 역시 직결입니다. 추가 IPv4는 하나당 월 $1.6입니다. 장비는 일본 도쿄에 둡니다. Linux는 SSH, Windows를 고른 뒤에는 RDP입니다.
디스크, 주소, 유료 운영체제를 더할 때는 그 월 요금을 이미 대역폭이 들어 있는 $699.8이나 $1,197.5에 합친 다음 월 수를 곱합니다. 대역폭 추가 요금만 월 수로 곱하고 본체는 한 달 요금으로 두면 기간이 어긋납니다.
구성 페이지의 대역폭은 셋 중 하나입니다. 앞 절의 혼잡 시간 샘플로 단계를 정하고, 이 절에서 추가 요금을 기간에 곱합니다. 월간 바이트 열은 트래픽 무제한이 이미 덮습니다. 선택 자체가 답하는 것은 혼잡 시간에 포트가 충분한 속도인지입니다.