[게임 서버] 9.4 논리적 단일 서버 분산

게시:     수정

카테고리:

태그:

이 글은 아래의 책을 자세히 정리한 후, 정리한 글을 GPT에게 요약을 요청하여 작성되었습니다.
게임 서버 프로그래밍 교과서, 배현직 저자

📦 9. 분산 서버 구조

👉🏻 4. 논리적 단일 서버 분산

🖥️ 단일 서버

---
config:
  look: handDrawn
  theme: dark
  layout: dagre
---
flowchart LR

Client[클라이언트] --- Firewall[방화벽] --- Router[스위치 / 라우터] --- Server[서버] --- DB[(데이터베이스)]

🔍 과부하 지점 파악 및 분산 처리

  • 라우터/스위치, 방화벽, CPU, 스토리지 중 하나라도 한계를 넘어서면, 분산 처리가 필요하다.
  • 처음엔 4가지 중 몇 가지에만 해도 괜찮다.
    • 성능 분석을 한 후, 엄선한 지역에 분산 처리를 하는 것이 경제적이다.

📊 성능 분석

  • 성능 분석의 도구는 다양하다.
    • 윈도: 비주얼 스튜디오 코드 프로파일러, 윈도 성능 도구
    • 리눅스: perf

과정:

  1. 성능 분석을 통해 과부하 지점을 찾으면, 더 자세한 성능 분석을 진행한다.
    • e.g. 게임 서버의 CPU 사용량이 높으면, CPU 내에서 어느 부분이 사용량이 높은지?
    • 성능 분석을 하는 방법은, 게임에 따라 달라진다.
    • 이 책의 필자는 주로 성능 분석을 할 때, 함수 소요시간 + 함수가 호출하는 하위 함수의 소요시간을 확인한다.
  2. 어떤 함수가 많은 처리량을 차지하는지 확인한다.
  3. 코드 최적화를 진행한다.
  4. 분산을 진행한다.

⚙️ 분산 방법

  • 분산 단위는 크게 아래와 같이 나뉜다.
    • 데이터 단위 분산
    • 기능 단위 분산
  • 게임 로직 분산 처리 방식은 아래와 같이 나뉜다.
    • 동기 분산 처리
    • 비동기 분산 처리
    • 데이터 복제 및 로컬 처리

GameServer 카테고리 내 다른 글 보러가기

댓글남기기