대규모 동시접속 처리를 중심으로


1. 서론

1.1 주제 선정 배경 및 목적

MMO(Massively Multiplayer Online) 게임은 수천에서 수만 명의 플레이어가 하나의 가상 세계에서 동시에 상호작용하는 대규모 온라인 서비스이다. 이러한 서비스를 안정적으로 운영하기 위해서는 일반 가정용 PC와는 근본적으로 다른 수준의 하드웨어 인프라가 요구된다.

본 리포트에서는 MMO 게임 서버에 사용되는 하드웨어의 사양과 특징을 조사하고, 컴퓨터 구조 수업에서 학습한 개념들이 실제 서버 환경에서 어떻게 적용되는지를 분석하고자 한다. 이를 통해 이론적으로 학습한 CPU 아키텍처, 메모리 계층 구조, 버스 시스템, I/O 인터페이스 등의 개념이 실무에서 어떤 의미를 갖는지 이해하는 것을 목표로 한다.

필자는 현재 게임 서버 개발에 관심을 갖고 공부하고 있으며, 개인적으로 사용하는 데스크탑 PC(Intel Core i7, 32GB RAM, NVMe SSD)로도 간단한 게임 서버 테스트를 해본 경험이 있다. 그 과정에서 동시접속자가 늘어날수록 개인 PC의 한계를 체감하게 되었고, "실제 상용 MMO 서비스는 어떤 수준의 하드웨어를 사용하는가?"라는 궁금증이 본 주제를 선정하게 된 직접적인 계기가 되었다. 본 리포트의 7.2절에서는 필자의 개인 PC급 사양과 서버 사양을 직접 비교하여, 같은 '컴퓨터'이지만 목적에 따라 구조가 어떻게 달라지는지를 함께 분석한다.

본 리포트에서 분석 대상으로 선정한 PC(서버)는 Dell PowerEdge R760이다. Dell PowerEdge R760은 현재 시장에서 판매 중인 2U 랙 서버로, 4세대/5세대 Intel Xeon Scalable 프로세서를 탑재하며 MMO 게임 서버를 포함한 고성능 컴퓨팅 환경에 적합한 사양을 갖추고 있다. 공식 스펙시트가 공개되어 있어 구체적인 하드웨어 분석이 가능하다는 점에서 본 리포트의 분석 대상으로 선정하였다. [12]

1.2 MMO 게임 서버의 특수성 (왜 일반 PC와 다른가)

MMO 게임 서버는 일반 데스크탑 PC와 비교했을 때 다음과 같은 근본적인 차이가 있다.

구분 일반 데스크탑 PC MMO 게임 서버
사용 목적 1인 사용자의 개인 작업 수천~수만 명의 동시 요청 처리
운영 시간 필요 시 사용 (하루 수 시간) 24시간 365일 무중단 운영
안정성 요구 일시적 오류 허용 데이터 손실/다운타임 불허
CPU 요구 높은 싱글스레드 성능 높은 멀티스레드 성능 + 안정성
메모리 요구 16~32GB 일반 메모리 128GB~1TB ECC 메모리
네트워크 1Gbps 10Gbps~25Gbps 이상
GPU 의존도 높음 (그래픽 렌더링) 낮음 (서버는 렌더링하지 않음)

일반 PC는 한 명의 사용자가 화면을 보며 사용하는 환경이므로 GPU 성능과 싱글스레드 CPU 성능이 중요하다. 반면 MMO 게임 서버는 화면 출력이 없고, 수천 명의 플레이어 데이터를 동시에 연산해야 하므로 CPU의 멀티코어 성능, 메모리의 용량과 안정성, 네트워크 대역폭이 핵심적인 요소가 된다.


2. MMO 게임 서버 개요

2.1 MMO 서버의 동작 원리

동시접속자 처리

MMO 서버는 접속한 모든 플레이어의 위치, 행동, 상태를 실시간으로 관리한다. 예를 들어 한 필드에 500명의 플레이어가 있다면, 서버는 매 틱(tick)마다 500명 각각의 이동, 전투, 아이템 사용 등의 이벤트를 처리하고, 그 결과를 주변 플레이어들에게 전송해야 한다.