6노드 무선 속도 비교 실측 — 협상 속도 1등이 실전송 꼴찌였다
홈랩 K3s 클러스터 6노드가 오늘부로 전부 무선이 됐다. 마지막까지 유선이던 노드도 active-backup 본딩의 활성 슬레이브가 USB Wi-Fi 동글로 넘어갔다. 그래서 지금 시점의 6노드 무선 품질을 한 번에 쟀다. 결과에 반전이 하나 있다 — PHY 협상 속도 1등 노드가 실전송에서는 뒤에서 두 번째였다.
측정 방법 (한계 포함)
- 링크 지표: 각 노드에서
iw dev <if> link— 신호(dBm), 수신/송신 협상 비트레이트 - 지연: 각 노드에서 게이트웨이로
ping 30발(0.3초 간격) — 무선 한 홉만 측정 - 실전송: 5 GHz 에 붙은 노드 A 에서 각 노드로 20 MB 를
scp— 경로에 무선 두 홉(A 의 5 GHz + 대상의 2.4 GHz)이 걸리지만, 두 밴드는 에어타임을 공유하지 않으므로 병목은 대상 노드 쪽 2.4 GHz 링크다 - 클러스터가 살아 있는 상태(평상시 트래픽 포함)에서 순차 측정했다. 통제된 벤치마크가 아니라 운영 중 스냅샷이다. 협상 비트레이트는 순간값이라 시점에 따라 변한다.
결과
| 노드 | 밴드 | 신호 | 협상 rx/tx (Mbps) | GW RTT 평균/최대 (ms) | 손실 | 실전송 (Mbps) |
|---|---|---|---|---|---|---|
| A (내장, 5 GHz) | 5 GHz | -69 dBm | 270 | 1.3 / 6 | 0% | (전송 소스) |
| B (내장) | 2.4 GHz | -55 dBm | 130 / 130 | 95 / 355 | 0% | 2.5 |
| C (USB 동글) | 2.4 GHz | -64 dBm | 68.8 / 103.2 | 53 / 217 | 0% | 4.4 |
| D (USB 동글+연장선) | 2.4 GHz | -62 dBm | 51.6 / 103.2 | 154 / 1120 | 0% | 12.2 |
| E (USB 동글, 본딩) | 2.4 GHz | -67 dBm | 51.6 / 86.0 | 127 / 404 | 0% | 3.9 |
| F (내장, 레거시 레이트) | 2.4 GHz | 미취득* | 48 / 54 | 96 / 379 | 13% | 1.0 (1차 시도는 타임아웃) |
* F 는 드라이버가 /proc/net/wireless 에 신호를 -256 으로 보고해 유효값을 얻지 못했다.
읽어낼 것 세 가지
1. 협상 속도 순위 ≠ 실효 속도 순위
B 는 신호 -55 dBm 로 가장 세고 협상 속도도 130 Mbps 로 2.4 GHz 조 1등이다. 그런데 실전송은 2.5 Mbps 로 뒤에서 두 번째다. 반대로 D 는 협상 rx 가 51.6 Mbps 로 낮은 축인데 실전송은 12.2 Mbps 로 1등이다.
협상 비트레이트는 “전파가 깨끗할 때 이 속도로 보내보겠다”는 계약이지 실제 처리량이 아니다. 실효 속도는 재전송률과 에어타임 확보가 결정하고, 그 둘은 신호 세기 지표에 안 나타난다. 신호 막대기만 보고 “이 자리 잘 터져” 라고 판단하면 이런 역전을 놓친다.
2. 2.4 GHz 한 채널에 5노드 — 서로가 서로의 병목
이번 측정에서 2.4 GHz 5노드는 전부 같은 채널에 붙어 있었다. Wi-Fi 는 한 채널을 시분할로 나눠 쓰므로(반송파 감지 후 송신), 같은 채널의 노드가 늘수록 각자의 에어타임은 줄고 대기 지연은 널뛴다. 2.4 GHz 조의 게이트웨이 RTT 평균이 53~154 ms, 최대 1.1초까지 튀는 반면 5 GHz 에 혼자 있는 A 는 평균 1.3 ms 다. 같은 방, 같은 AP 에서 채널 하나 차이다.
K8s 관점에서 이 지연 분산은 단순 불편이 아니다 — liveness probe 타임아웃, 이미지 풀 지연, etcd/apiserver 통신 지터로 그대로 이어진다.
3. 최하위 협상 레이트에 갇힌 노드는 채널 전체를 끌어내린다
F 는 협상 속도가 48/54 Mbps — 레거시 레이트에 갇혀 있고, 유일하게 패킷 손실(13%)이 났으며, 20 MB 전송이 한 번은 타임아웃, 재시도는 1.0 Mbps 였다. 느린 노드의 문제로 끝나지 않는 게 핵심이다. 느린 레이트의 전송은 같은 바이트를 보내는 데 더 긴 에어타임을 점유하므로, 한 채널을 공유하는 다른 4노드의 몫까지 갉아먹는다. 채널에서 가장 느린 송신자가 채널 전체의 상한을 정하는 셈이다.
결론과 다음 단계
- 오늘의 순위(실전송): D 12.2 > C 4.4 > E 3.9 > B 2.5 > F 1.0 — 신호 순위와도, 협상 속도 순위와도 다르다
- 지금 구조의 병목은 개별 동글이 아니라 “2.4 GHz 한 채널에 5노드” 라는 배치 자체다
- 다음 개선은 순서대로: ① F 의 레거시 레이트 원인 제거(가장 급함 — 채널 전체에 민폐) ② 5 GHz 지원 어댑터로 노드를 두 밴드에 분산 ③ 그래도 부족하면 유선 복귀
측정 명령은 전부 표준 도구(iw, ping, scp)라 어느 리눅스 노드에서든 재현 가능하다. 협상 속도 자랑 말고 실전송을 재라 — 이번 표가 그 이유다.