드레인 기능(새 접속만 막고 기존 사람이 빠질 때까지 기다리기), 캐릭터를 다른 서버로 옮기기, 종료 전 저장 나눠 하기, 재시작 뒤 캐시 로딩·JIT 워밍업을 마치고 준비 완료 알리기, 핫 리로드는 별도 스레드에서 미리 읽어 두고 틱 사이에 한 번에 교체.
인프라팀 할 일
배포 도구가 한 대씩 드레인을 기다린 뒤 재시작, 재시작한 서버는 준비 완료(예열 끝)를 확인한 뒤 트래픽 받기, 배포 시각 공지.
수치 감각
서버 한 대에 5,000명이면 종료 직전 몇 초 안에 저장 5,000건이 DB로 몰립니다.
그래프에서는
연결이 한꺼번에 끊김 · 서버별 접속 수, DB 쓰기 수
확인할 곳
배포 도구의 작업 기록(서버별 재시작 시각)을 접속 수·끊김 수·DB 쓰기·로그인 요청 그래프에 세로선(주석)으로 겹쳐 봄
이러면 맞음
서버별 접속 수가 재시작 시각에 한 대씩 차례로 급락하고 그 직전에 DB 쓰기가, 직후에 로그인 요청이 솟음
이러면 아님
끊긴 시각이 배포·재시작 기록과 겹치지 않으면 서버 크래시나 네트워크 장비 쪽
확인 수단
인프라 도구로 확인(게임 코드 불필요)
더 알아보기
다시 켠 직후 몇 분도 느립니다. 캐시가 비어 DB 조회가 몰리고 Java·C# 서버는 실행하면서 코드를 최적화하는 과정(JIT 워밍업)이 끝나기 전이라 같은 일에 시간이 더 듭니다. 서버를 끄지 않고 스크립트·데이터 테이블을 다시 읽는 방식(핫 리로드)도 읽는 동안 틱이 멈춰 잠깐 멈춤이 생깁니다.