게임 렉 백서 › L9 서버 게임 프로세스
타이머 동시 발동 몰림 Synchronized timers
원인 ID sp-timer-burst · 주 담당 게임개발팀·서버 개발
그림과 실험이 있는 원본 카드로 열기 →
모든 몬스터 리스폰, 모든 버프 만료, 정각 보상이 같은 틱에 몰리면 그 틱만 수십 배 무거워집니다.
왜 리스폰·만료·보상·자동 저장 타이머가 같은 시각에 맞춰짐 → 그러면 그 한 틱에 평소의 수십 배 작업 → 화면에서는 정해진 시각마다 한 번씩 멈칫
- 증상
- 멈춤, 뚝뚝 끊김
- 요인
- 정체
- 누가 겪나
- 특정 장소·채널, 서버 전체
- 언제
- 일정한 주기로
- 담당
- 주 담당 게임개발팀·서버 개발
- 게임개발팀 할 일
- 타이머 시각을 무작위로 조금씩 분산, 여러 틱에 나눠 처리.
- 그래프에서는
- 일정 주기로 튐 · 서버 틱 시간
- 확인할 곳
- 틱 시간이 튄 시각들을 모아 간격을 봄(정각, 5분마다 등). 같은 시각에 도는 리스폰·버프 만료·보상·자동 저장 타이머 목록과 대조
- 이러면 맞음
- 틱이 매번 같은 시각이나 같은 간격으로 튀고 그 시각에 한꺼번에 발동하는 게임 타이머 작업이 있음
- 이러면 아님
- 주기는 있지만 GC 로그의 멈춤 시각이나 서버의 크론·백업 시각과 겹치면 서버 GC 전체 멈춤, 예약 작업 쪽
- 확인 수단
- 게임 서버·클라이언트의 로그·지표가 필요
출처
- Timeouts, retries, and backoff with jitter AWS
Amazon Builders' Library. 모든 타이머·주기 작업·지연 작업에 지터를 더해 같은 시각에 몰리는 부하를 흩뜨림, 여러 서버의 1분 주기 요청이 매분 첫 몇 초에 몰린 사례
함께 보면 좋은 원인
같은 층: L9 서버 게임 프로세스
같은 증상(멈춤)의 다른 층 원인
그림과 실험이 있는 원본 카드 보기