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

게임 렉 백서 › L9 서버 게임 프로세스

타이머 동시 발동 몰림 Synchronized timers

원인 ID sp-timer-burst · 주 담당 게임개발팀·서버 개발

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

모든 몬스터 리스폰, 모든 버프 만료, 정각 보상이 같은 틱에 몰리면 그 틱만 수십 배 무거워집니다.

왜 리스폰·만료·보상·자동 저장 타이머가 같은 시각에 맞춰짐 → 그러면 그 한 틱에 평소의 수십 배 작업 → 화면에서는 정해진 시각마다 한 번씩 멈칫

증상
멈춤, 뚝뚝 끊김
요인
정체
누가 겪나
특정 장소·채널, 서버 전체
언제
일정한 주기로
담당
주 담당 게임개발팀·서버 개발
게임개발팀 할 일
타이머 시각을 무작위로 조금씩 분산, 여러 틱에 나눠 처리.
그래프에서는
일정 주기로 튐 · 서버 틱 시간
확인할 곳
틱 시간이 튄 시각들을 모아 간격을 봄(정각, 5분마다 등). 같은 시각에 도는 리스폰·버프 만료·보상·자동 저장 타이머 목록과 대조
이러면 맞음
틱이 매번 같은 시각이나 같은 간격으로 튀고 그 시각에 한꺼번에 발동하는 게임 타이머 작업이 있음
이러면 아님
주기는 있지만 GC 로그의 멈춤 시각이나 서버의 크론·백업 시각과 겹치면 서버 GC 전체 멈춤, 예약 작업 쪽
확인 수단
게임 서버·클라이언트의 로그·지표가 필요

출처

  1. Timeouts, retries, and backoff with jitter AWS
    Amazon Builders' Library. 모든 타이머·주기 작업·지연 작업에 지터를 더해 같은 시각에 몰리는 부하를 흩뜨림, 여러 서버의 1분 주기 요청이 매분 첫 몇 초에 몰린 사례

함께 보면 좋은 원인

같은 층: L9 서버 게임 프로세스

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

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