한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

게임 렉 백서 › TCP 재전송의 근본 원인

폴리서의 초과분 폐기 Traffic policing

원인 ID rt-policer · 주 담당 인프라팀·네트워크 인프라 · 함께 인프라팀·서버 인프라, 게임개발팀·서버 개발

그림과 실험이 있는 원본 카드로 열기 →

통신사 요금제, 클라우드 인스턴스 한도, DDoS 방어 장비는 정해진 속도를 넘는 패킷을 대기열에 넣지 않고 즉시 버리기도 합니다.

왜 순간 전송량이 허용 속도·허용 버스트를 넘음 → 그러면 넘는 패킷을 대기열 없이 바로 폐기(폴리싱) → 화면에서는 버스트가 큰 순간마다 여러 개가 사라져 멈춤 뒤 몰아치기, 평균 속도는 한도 아래로 보임

증상
멈춤, 몰아치기, 순간이동
요인
손실
누가 겪나
서버 전체, 특정 지역·통신사, 나만
언제
사람이 몰릴 때, 저녁 피크 시간
담당
주 담당 인프라팀·네트워크 인프라 · 함께 인프라팀·서버 인프라, 게임개발팀·서버 개발
게임개발팀 할 일
틱마다 몰아 보내는 양을 틱 안에 나눠 보내 순간 전송량을 허용 버스트 아래로 낮추기, 초당 패킷 수 한도에 걸리면 한 틱의 메시지를 한 패킷에 합치기.
인프라팀 할 일
네트워크: 장비의 폴리서 초과 카운터 확인, 폴리서 대신 셰이퍼, 허용 버스트 늘리기. 서버 장비·OS: 클라우드 한도 초과 지표(AWS는 ethtool -S의 bw_out_allowance_exceeded·pps_allowance_exceeded) 확인, 인스턴스 상향, 서버 페이싱(리눅스 fq 큐).
수치 감각
셰이퍼(대기열에 넣어 늦춤)는 지연을 늘리고 폴리서(즉시 폐기)는 손실을 늘립니다. TCP 게임 연결은 손실 한 번에 수백 ms 멈출 수 있어, 한도를 잠깐 넘는 정도라면 대개 폴리서 쪽이 영향이 큽니다.
그래프에서는
한도에 닿아 평평해짐 · 짧은 간격의 송신량, 폴리서·allowance 초과 카운터
확인할 곳
폴리서가 걸린 장비의 초과(exceed)·폐기 카운터를 보고 클라우드면 ethtool -S의 bw_out_allowance_exceeded·pps_allowance_exceeded를 봄. 손실이 난 연결은 ss -ti의 rtt나 패킷 캡처로 손실 직전의 RTT를 봄
이러면 맞음
초과 카운터가 늘고 짧은 간격으로 본 송신량이 어떤 값에서 잘린 듯 평평함. 손실 직전에 RTT가 오르지 않고 버스트가 큰 순간에만 여러 패킷이 한꺼번에 사라짐
이러면 아님
손실 직전에 RTT가 먼저 오르면 대기열 넘침(“병목 대기열 넘침”, “송신 버스트로 얕은 버퍼 넘침”). 초과 카운터가 그대로면 다른 원인
확인 수단
인프라 도구로 확인(게임 코드 불필요)

출처

  1. RFC 2475: An Architecture for Differentiated Services IETF
    셰이핑은 패킷을 늦춰 트래픽 프로파일에 맞추고 폴리싱은 프로파일을 넘는 패킷을 버린다는 정의
  2. An Internet-Wide Analysis of Traffic Policing Google
    폴리싱이 걸린 전송은 손실률이 평균 6배 높고 페이싱·셰이핑으로 같은 목적을 이룰 수 있음. 폴리싱은 RTT 증가 없이 초과분을 버리고 대기열 넘침은 손실 전에 RTT가 오른다는 구분(SIGCOMM 2016)
  3. Monitor network performance for ENA settings on your EC2 instance AWS
    ethtool -S의 bw_out_allowance_exceeded·pps_allowance_exceeded: 인스턴스 한도를 넘어 대기열에 넣거나 버린 패킷 수
  4. tc-fq(8) — Linux manual page iproute2
    리눅스 fq 큐의 연결별 페이싱
  5. ss(8) — Linux manual page iproute2
    ss -i의 rtt(평균 왕복 시간)

함께 보면 좋은 원인

같은 층: TCP 재전송의 근본 원인

같은 증상(멈춤)의 다른 층 원인

그림과 실험이 있는 원본 카드 보기