[게임 서버] 9.4 논리적 단일 서버 분산
카테고리: GameServer
태그: GameServer
이 글은 아래의 책을 자세히 정리한 후, 정리한 글을 GPT에게 요약을 요청하여 작성되었습니다.
게임 서버 프로그래밍 교과서, 배현직 저자
📦 9. 분산 서버 구조
👉🏻 4. 논리적 단일 서버 분산
🖥️ 단일 서버
---
config:
look: handDrawn
theme: dark
layout: dagre
---
flowchart LR
Client[클라이언트] --- Firewall[방화벽] --- Router[스위치 / 라우터] --- Server[서버] --- DB[(데이터베이스)]
🔍 과부하 지점 파악 및 분산 처리
- 라우터/스위치, 방화벽, CPU, 스토리지 중 하나라도 한계를 넘어서면, 분산 처리가 필요하다.
- 처음엔 4가지 중 몇 가지에만 해도 괜찮다.
- 성능 분석을 한 후, 엄선한 지역에 분산 처리를 하는 것이 경제적이다.
📊 성능 분석
- 성능 분석의 도구는 다양하다.
- 윈도: 비주얼 스튜디오 코드 프로파일러, 윈도 성능 도구
- 리눅스: perf
과정:
- 성능 분석을 통해 과부하 지점을 찾으면, 더 자세한 성능 분석을 진행한다.
- e.g. 게임 서버의 CPU 사용량이 높으면, CPU 내에서 어느 부분이 사용량이 높은지?
- 성능 분석을 하는 방법은, 게임에 따라 달라진다.
- 이 책의 필자는 주로 성능 분석을 할 때,
함수 소요시간 + 함수가 호출하는 하위 함수의 소요시간을 확인한다.
- 어떤 함수가 많은 처리량을 차지하는지 확인한다.
- 코드 최적화를 진행한다.
- 분산을 진행한다.
⚙️ 분산 방법
- 분산 단위는 크게 아래와 같이 나뉜다.
- 데이터 단위 분산
- 기능 단위 분산
- 게임 로직 분산 처리 방식은 아래와 같이 나뉜다.
- 동기 분산 처리
- 비동기 분산 처리
- 데이터 복제 및 로컬 처리
댓글남기기