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

게임 렉 백서 › L13 서버 구성과 운영

부가 서버 장애 Auxiliary service outage

원인 ID in-subservice · 주 담당 게임개발팀·서버 개발 · 함께 인프라팀·서버 인프라

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

채팅·파티·경매장처럼 게임 서버와 따로 도는 서버에 장애가 나면 그 기능만 동작하지 않습니다.

왜 기능 전용 서버가 느려지거나 죽음 → 그러면 해당 기능 요청만 응답 없음 → 화면에서는 채팅 안 됨, 파티 초대 무반응, 거래소 무한 로딩(전투는 정상)

증상
씹힘·롤백, 접속 불가·무한 로딩
요인
정체, 손실
누가 겪나
특정 기능만
언제
가끔 무작위로, 사람이 몰릴 때
담당
주 담당 게임개발팀·서버 개발 · 함께 인프라팀·서버 인프라
게임개발팀 할 일
실패해도 게임은 계속되게 설계, 기능별 상태 표시, 여러 기능을 중앙 서버 한 대에 몰지 않기.
인프라팀 할 일
부가 서버별 헬스체크·경보, 이중화와 자동 재시작.
그래프에서는
연결이 한꺼번에 끊김 · 기능별 요청 성공률, 부가 서버 연결 수·헬스체크
확인할 곳
채팅·파티·경매장 같은 부가 서버별 헬스체크·프로세스 상태와 연결 수, 기능별 요청 성공률·응답 시간. 로드밸런서 뒤라면 대상 그룹의 UnHealthyHostCount
이러면 맞음
제보된 기능을 맡은 서버만 헬스체크 실패나 연결 급락을 보이고 게임 서버의 틱과 전투는 정상
이러면 아님
여러 기능이 한꺼번에 멈췄으면 그 기능들을 함께 중계하는 중앙 서버나 연쇄 장애 쪽
확인 수단
인프라 도구로 확인(게임 코드 불필요)
더 알아보기
파티·길드·귓속말·서버 간 이동을 한 대의 중앙 서버(월드·매니저 서버)가 모두 중계하는 구조라면, 그 서버 하나가 느려질 때 여러 기능이 한꺼번에 멈춥니다.

출처

  1. Bulkhead Pattern Microsoft Azure
    구성 요소를 풀로 격리하면 하나가 실패해도 나머지는 계속 동작하고 장애가 번지지 않음
  2. REL05-BP01 Implement graceful degradation to transform applicable hard dependencies into soft dependencies AWS
    AWS Well-Architected. 의존 대상이 장애여도 핵심 기능은 약간 오래된 데이터나 대체 데이터로 계속 동작하도록 설계
  3. CloudWatch metrics for your Network Load Balancer AWS
    UnHealthyHostCount: 헬스체크에서 비정상으로 판정된 대상 수

함께 보면 좋은 원인

같은 층: L13 서버 구성과 운영

같은 증상(씹힘·롤백)의 다른 층 원인

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