뉴비는 > 시즌&뉴비 서버 증설
기존유저는 > 일반 서버 증설
PK유저는 > 아르샤 증설
막피방지는? > 일반&시즌&뉴비서버 칼제거
초식들은? > 생활전용섭 생성

어려울거같다...
반박시 니말 맞음



[출처 : https://pgr21.com/free2/64658]
유게에 업게인이 밝히는 로아 서버 대기열 문제를 보고, 육아에 찌들어있는 와중에 짬을 내서 글을 올려봅니다. 제 직군은 서버 프로그래머이고, 게임 서버 프로그래머로 20년 조금 안 되게 일했습니다.
로아 프로그램팀에 지인들이 몇 있긴 하지만, 얼굴 못본지 꽤 되었고 바쁠 때는 서로 연락 안하는 게 업계의 도리라 내부 정보 없이 그냥 일반론만 적는 것임을 말씀 드립니다.

많은 분들이 지금 잘 되는데 돈 좀 써서 서버 증설하면 되는 거 아니냐 라고 말씀하십니다. 그런데 서버 증설이 그냥 서버 대수 늘리는 걸로 끝난다면 아마 로아는 지금쯤 대기열 없는 쾌적한 게임이 되어 있었을 겁니다.
일반적으로 서버 증설이라고 뭉뚱그려지는 단어를 쪼개면 크게 두가지로 나뉘어집니다. 스케일 업, 스케일 아웃입니다.

스케일 아웃은 서버를 늘리는 겁니다. 물리적으로 1대 쓰던 서버를 2대로 늘리고 하는 걸 스케일 아웃이라고 부릅니다. 일반적으로 웹 서버 베이스의 모바일 서버에서 적용했을 때 매우 드라마틱한 성능 향상을 보여줍니다.

스케일 업은 서버의 스펙을 올리는 작업입니다. 보통 서버를 뭔가 대단하게 생각하시는데 서버라고 해봤자 결국 우리가 쓰는 PC보다 성능 좋은 컴퓨터일 뿐입니다. 1-2개 정도, 혹은 그 이상의 (요즘엔 4 way 서버 보기 참 힘들어지긴 했습니다만) 비싼 cpu를 달고 (아직은 인텔 제온 많이 씁니다), 오류 검증이 가능한 ECC램을 달고, 조금 더 안정적으로 동작하라고 파워 2개(리던던트 파워라고 부릅니다.) 달고, SAS 인터페이스 기반 서버용 하드나 서버용 SSD달고, 전원부 튼실하고 좋은 네트웤 칩셋 쓴 메인보드 달고 하면 그게 서버예요.
델이니 hp니 하는 회사들에서 나오는 서버들이라고 해야 그냥 그 회사에서 충분히 테스트 해 본 검증된 서버 부품으로 만든 컴퓨터 인거고, 문제 생겼을 때 전화하면 바로바로 와서 부품 갈아주고 아니면 통째로 서버 갈아주기도 하고 하니까 대형 벤더 서버 쓰는겁니다.

우리가 집에서 게임 잘 안돌아가면 업그레이드 하듯, 게임 서버가 잘 안돌아가면 서버 스펙을 업그레이드 하는게 스케일 업입니다. 메모리가 부족하면 메모리 좀 더 꽂고, cpu가 문제면 cpu 스펙업 하거나 한두개 더 꼽고 하는 작업입니다.

그럼 스케일 업이든 스케일 아웃이든 하면 되지 않느냐, 라고 하시는데, 문제는 그렇게 간단하게 끝나지 않는다는 데에 있습니다.

컴퓨터 조립을 해보신 분들은 윗 글 읽으시면서 느끼셨겠지만, 일단 스케일 업이 스케일 아웃보다 어렵습니다. 스케일 아웃은 그냥 기존 컴퓨터와 같은 스펙의 컴퓨터를 한 대 더 맞추는 것에서 끝나는데에 반해, 스케일 업은 뭐가 문제인지 파악하고, 해당 부품을 바꿔야 합니다.
기존 부품은 폐기되구요. 물론 진짜 폐기시키진 않고 다른 용도로 전환해서 사용하겠지만, 어쨌든 스케일 아웃보다 조금 더 신중하게 접근해야죠.

그럼 스케일 아웃하면 되는 거 아니냐? 라고 물으실텐데, 내 컴퓨터에서 배그 잘 안돌아간다고 같은 스펙 컴퓨터 한대 더 산다고 배그가 더 잘 돌아가는게 아니잖아요? 스케일 아웃은 스케일 아웃에 대응되게 작업이 된 경우만 효과적으로 동작합니다. 인터넷 방송 하시는 분들이 컴퓨터 한 대 더 사면 방송이 더 잘되는 것 처럼 말이죠.
문제는 스케일 아웃에 대응되게 작업하는건 매우 어렵고 고통스러운 작업이라는데에 있습니다. 이게 컨텐츠에 따라 다른데, 모바일 서버 같이 유저간 상호작용이 적은 경우는 쉽게 작업할 수 있는 반면에 상호작용이 있는 경우는 난이도가 올라갑니다. 그리고 MMORPG는 유저간 상호작용을 빼면 남는게 없는 게임이죠.

그래서 적당한 선에서 스케일 아웃 할 수 있도록 컨텐츠를 쪼개는데, 일반적으로 가장 만만한 게 채널입니다. 채널 단위로 물리적 서버를 따로 할당할 수 있도록 작업하고 스케일 아웃하는거죠.

그런데 스케일 아웃하기 애매한 컨텐츠 들이 있습니다. 전 월드에 걸쳐서 동작해야 하는 컨텐츠인데, 보통 길드라던가, 친구 라던가, 채팅(채널 채팅 제외, 길드 채팅, 전체 채팅)이라던가, 경매장이라던가 하는 컨텐츠 들이 그렇습니다.
3번 채널 길드, 6번 채널 경매장 이렇게 만들 수는 없잖아요? 서로 다른 채널에 있다고 친구 정보가 안보인다면 막 화나고 게임 막 만든거 같고 그럴거예요.
이런 컨텐츠는 전 게임 월드에 단독으로 존재해야 하고, 그래서 이런 컨텐츠를 담당하는 서버에 부하가 걸리면 스케일 업으로 해결하거나 아니면 매우 고통스러운 과정을 거쳐 스케일 아웃 가능한 서버를 짜거나 합니다. (보통 그냥 스케일 업 합니다.)

그런데 스케일 업의 경우 위에서 말씀드렸듯 스케일 아웃보다는 조금 더 신중하게 접근해야 하고, 거기에 돈을 쓴 만큼 효율이 더 나지 않는 문제도 있습니다.

스케일 아웃은, 돈을 2배로 쓰면 성능이 2배가 됩니다. 컴퓨터를 두대 사면 컴퓨터 두대를 쓸 수 있습니다.

스케일 업은, 돈을 2배로 쓴다고 성능이 2배가 되지 않습니다. 메모리 4G에서 8G로 바꾼다고 배그 프레임 2배 나오는거 아니잖아요. 거기에 요즘 램값은 똥값이라서 용량과 가격이 비례합니다만, cpu의 경우는 다나와에서 가장 비싼 cpu와 그 반값인 cpu 클럭와 core수를 비교해보면 절대 두배가 안 나온다는 걸 알 수 있습니다.
그리고 1way(cpu 한 개) 메인보드 쓰고 있었는데 2way(cpu 2개)로 바꿔야 한다면? cpu뿐 아니라 메인보드도 갈아야 합니다.
즉 스케일 업의 경우, 성능 향상에 들어가는 돈이 너무 많아요. 일반 서버 두 세대 살 돈 들여서 스케일 업했는데 성능 겨우 10% 늘어나면 유저들에게도 욕먹고 사업부에서도 욕먹습니다.

거기다가 위 작업을 그냥 부품 사서 바꿔 꼽으면 안됩니다. 벤더(hp, dell 등등)에 연락해서 업그레이드 해달라고 하면 벤더에서 부품 가져다가 꼽아주는거죠. 보통 스마일게이트 정도 되면 대형 고객이니 전화하면 꽤 빠릿빠릿하게 와서 바꿔줍니다.
단, 벤더에서 지원하는 경우에 한해서요. 벤더에서 지원 안하면 골치가 아파지는데, 예를 들어 메인보드 2way 로 바꿔야 하는데 해당 모델에서는 지원 안되는 메인보드라 서버를 통째로 갈아야 한다면? 제온 최상위 cpu 써야 하는데 해당 벤더는 그 모델에서 그 cpu 지원 안한다고 하면? 아니면 애초에 해당 벤더에서 테스트 안해본 cpu라 그 cpu 못쓴다고 하면?
진짜 워스트 케이스는, 이미 해당 벤더 최상급 장비를 사용중인 경우인데, 이러면 소프트웨어적으로 퍼포먼스 튜닝을 하던가, 아니면 위에서 얘기한 길고 고통스러운 작업을 거쳐 스케일 아웃 가능하게 바꾸던가 해야하는데 이건 시간이 매우 오래 걸립니다.

그리고 보통 자체 IDC가 있는 경우 표준 장비를 가지고 있는 경우가 많은데, 스케일 업 하겠다고 이상한 장비 사달라고 얘기하면 SE님들이 싫어합니다. 실제 서버를 셋팅하고 운영하는 건 SE님들인데 이분들이 다루는 장비가 보통 3자리 수, 좀 많은 경우 네자리 수거든요. 얘네들 스펙이 다들 각각이면 짜증날만 하지 않겠어요? 이 분들은 해당 회사에서 서비스 하는 모든 게임 서버를 모두 관리하셔야 하는데, 지금 좀 잘 나간다고 이상한 서버 사달라고 하고 그게 특정 게임 잘 나갈때마다 반복되면 서버실에서 대 탈주가 일어날지도 모르는 일이죠. 거기에 이런 장비들은 다른 쪽으로 전용도 힘들어서 게임 인기가 식으면 구석에 방치되거든요.

때문에 스케일 업은, 스케일 업으로 성능이 유효할만큼 향상되는가를 먼저 임대 장비 받아서 테스트 하고, 성능 향상이 얼마나 되는지 등등에 대해 PT를 준비한 다음, 해당 장비가 좀 많이 비쌀 경우 사업부랑 좀 투닥투닥 하고, 또 SE님들에게 굽신굽신해서 내부 결정이 나면, 벤더에 발주하고, 벤더도 일반적인 장비가 아니니까 미국으로 발주하고, 그렇게 해서 실제 셋팅될 때 까지 한세월이 걸리는게 일반적입니다.


다시 한 번 말씀드리지만 로아 대기열이 스케일 아웃으로 해결될 일이었다면 아마 진작에 해결이 되었을 거라고 생각합니다. 만약 스케일 아웃으로 해결될만한 일이었대도 안하고 있었으면 스마일게이트는 가루가 되도록 까여도 쌉니다.
다만 상식적으로 판단했을 때, 스케일 업이 필요하거나 혹은 소프트웨어 튜닝이 필요한 일이었을 테고,  그래서 꽤 오랜 시간 다섯자리수 대기열이 각 서버마다 떠 있었을 거라고 생각합니다.

긴 글 읽어주셔서 감사합니다.