더북(TheBook)

64비트(x64)에서는 서버의 물리적 메모리보다 더 많은 양의 메모리를 할당하면서 대량의 메모리 스와핑(memory swapping)이 발생합니다. 이 때문에 프로그램 실행 속도가 급락하면서 메모리 할당량이 더욱 증가하는 악순환도 발생합니다. 물론 여기서도 메모리 스와핑을 할 수 있는 한계에 부딪히게 되면 역시 메모리 할당 함수가 이러한 문제를 일으킵니다.

게임 서버는 CPU와 메모리를 주로 이용합니다만, 하드디스크를 많이 쓰는 데이터베이스에서는 좀 다른 현상이 발생합니다. 데이터베이스에서는 디스크의 최대 처리 속도를 웃도는 디스크 I/O를 요구하는 명령(DB 질의)이 쌓입니다. 그러면서 램 사용량이 증가하다가 이 같은 문제가 발생합니다.

게임 콘텐츠 구성에 따라 다르나, MMORPG에서는 동시접속자 수가 2만 명이 넘어가면 이러한 문제가 쉽게 생깁니다.

또 흔하지는 않지만 단일 서버에 물려 있는 네트워크 기기에 과부하가 걸리면 다음 문제가 생기기도 합니다.

• 라우터 과부하로 패킷 유실(packet drop)이 발생합니다.

• TCP 재전송 타임아웃으로 TCP 연결 해제(disconnection)가 발생합니다.

• TCP 소켓에서 ECONNABORTED 오류가 발생합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.