게임 렉 백서 › L6 서버 네트워크 카드
NIC 대역폭 포화 NIC bandwidth saturation
원인 ID nic-saturate · 주 담당 게임개발팀·서버 개발 · 함께 인프라팀·서버 인프라
그림과 실험이 있는 원본 카드로 열기 →
1Gbps·10Gbps 카드의 한계까지 쓰면 송신 대기열이 길어지고 넘친 패킷은 버려집니다.
왜 브로드캐스트 증가로 전송량이 카드 한계에 도달 → 그러면 송신 대기열이 길어지고 넘치면 폐기 → 화면에서는 서버 전체 지연·손실(입력 지연·순간이동)
- 증상
- 입력 지연, 순간이동
- 요인
- 지연, 손실
- 누가 겪나
- 서버 전체
- 언제
- 사람이 몰릴 때
- 담당
- 주 담당 게임개발팀·서버 개발 · 함께 인프라팀·서버 인프라
- 게임개발팀 할 일
- 전송량 줄이기(관심 영역, 압축, 변경분만).
- 인프라팀 할 일
- 카드 증설(더 빠른 NIC, 클라우드는 더 큰 인스턴스), NIC 사용률 경보.
- 그래프에서는
- 한도에 닿아 평평해짐 · NIC 송신량, 송신 폐기
- 확인할 곳
- sar -n DEV 1의 txkB/s와 %ifutil(인터페이스 속도 대비 사용률)을 NIC 속도·인스턴스 대역폭과 비교하고, ip -s link의 TX dropped를 함께 봄
- 이러면 맞음
- 송신량이 NIC·인스턴스 대역폭 근처에서 평평해지고 그때부터 송신 폐기와 서버 전체 지연이 늘어남
- 이러면 아님
- 대역폭에 여유가 있으면 이 원인이 아님. 작은 패킷이 많은데 손실이 있으면 “클라우드 PPS 한도 초과”
- 확인 수단
- 인프라 도구로 확인(게임 코드 불필요)
출처
- Interface statistics Linux kernel
tx_dropped: 자원이 모자라 송신 도중 버린 패킷 수 - Amazon EC2 instance network bandwidth AWS
인스턴스가 쓸 수 있는 대역폭은 vCPU 수(인스턴스 크기)에 따라 정해짐 - sar(1) — Linux manual page sysstat
-n DEV의 rxkB/s·txkB/s와 %ifutil(인터페이스 속도 대비 사용률)
함께 보면 좋은 원인
같은 층: L6 서버 네트워크 카드
같은 증상(입력 지연)의 다른 층 원인
그림과 실험이 있는 원본 카드 보기