게임 렉 백서 › L5 데이터센터 네트워크 장비
스위치 마이크로버스트 Switch microburst drops
원인 ID dc-microburst · 주 담당 게임개발팀·서버 개발 · 함께 인프라팀·네트워크 인프라, 인프라팀·서버 인프라
그림과 실험이 있는 원본 카드로 열기 →
여러 서버가 같은 순간 수천 명에게 패킷을 한꺼번에 보내면, 그 트래픽이 모이는 스위치 포트의 작은 버퍼가 1ms도 안 돼 넘칩니다.
왜 월드 보스 등장·대규모 스킬, 또는 여러 서버의 틱이 같은 순간에 맞물려 한꺼번에 발송 → 그러면 여러 포트가 한 포트로 모이거나 빠른 포트에서 느린 포트로 넘어가는 곳의 버퍼(포트당 수백 KB~수 MB)가 순간적으로 가득 → 화면에서는 일부 패킷 폐기, 많은 사람이 동시에 순간이동·스킬 씹힘
증상 순간이동 , 씹힘·롤백
요인 손실
누가 겪나 특정 장소·채널
언제 사람이 몰릴 때
담당 주 담당 게임개발팀·서버 개발 · 함께 인프라팀·네트워크 인프라, 인프라팀·서버 인프라
게임개발팀 할 일 전송을 틱 안에 고르게 나누기(페이싱), 서버마다 틱 시작 시점을 조금씩 어긋나게.
인프라팀 할 일 네트워크: 버퍼 큰 스위치, 트래픽 분산(서버를 여러 스위치·포트에 나눠 배치), 스위치 포트별 폐기 카운터 감시. 서버 장비·OS: 서버 전체 송신 속도 상한(리눅스 tc 셰이퍼).
수치 감각 10Gbps 포트로 1ms 동안 내보낼 수 있는 양은 약 1.25MB. 두 포트의 트래픽이 한 포트로 동시에 몰리면 1ms마다 1.25MB씩 쌓입니다. 1초 평균 사용률이 10%여도 1ms 단위로는 넘칠 수 있습니다.
그래프에서는 인원·부하를 따라 오름 · 스위치 포트 출력 폐기 수
확인할 곳 서버가 붙은 스위치 포트와 그 트래픽이 모이는 포트의 출력 폐기 카운터(ifOutDiscards, 장비에 따라 output drops)를 가능한 짧은 간격으로 모아 보스 등장·대규모 전투 시각과 맞춰 봄. 1초·1분 평균 사용률 그래프만으로는 보이지 않음 이러면 맞음 평균 사용률은 낮은데 사람이 한곳에 몰리는 순간마다 출력 폐기가 늘고 그때 여러 유저가 동시에 순간이동·스킬 씹힘을 제보함 이러면 아님 폐기가 평균 사용률이 높은 시간대에 꾸준히 늘면 “데이터센터 회선 포화”. 입력 오류(CRC)가 늘면 “불량 케이블·포트 오류” 확인 수단 인프라 도구로 확인(게임 코드 불필요)
출처 High-Resolution Measurement of Data Center Microbursts (IMC 2017) ACM 데이터센터 버스트의 70% 이상이 수십 µs 안에 끝남, 평균 사용률이 약 9%인 포트에서도 버스트로 패킷 폐기 Data Center TCP (DCTCP) (SIGCOMM 2010) ACM 범용 스위치는 버퍼가 얕음(48포트가 4MB 공유, 한 포트가 약 700KB까지 사용), 여러 흐름이 짧은 순간 한 포트로 몰리면 손실 RFC 2863: The Interfaces Group MIB IETF ifOutDiscards: 오류가 없는데도 버퍼 공간 확보 등의 이유로 내보내지 못하고 버린 패킷 수
함께 보면 좋은 원인
같은 층: L5 데이터센터 네트워크 장비
같은 증상(순간이동)의 다른 층 원인
그림과 실험이 있는 원본 카드 보기