서버의 하드웨어 스펙의 최소치는 100배가 늘어나야함
최소치라 함은 하드웨어를 이루는 구성 요소의 평균을 말하는것이 아닌 병목현상을 유도하는 제일 구린 요소 기준으로 100배가 늘어나야한다는 말임.
대부분의 (게임) 서버는 뒤쪽에서 연산만 하는 공돌이들과, 앞쪽에서 클라이언트들과 통신하는 상담원들로 이루어져있음.
상담원들이 각 클라이언트로부터 데이터를 전송받으면 기록해서 공돌이들한테 떠넘김.
공돌이들은 모든 상담원들에게서 데이터를 전송받고 정해진 시간마다 끊어서 한번에 계산하는데
이브 온라인은 그 주기가 타이다이 100% 기준 1초임.
그리고 계산한 데이터를 상담원에게 넘겨주면 상담원은 각 클라이언트들에게 나머지 주변 상황을 설명 해줘야하는데
만약에 그리드에 10명이 있다면 통화중인 10명에게 각각 나머지 9명의 상황을 설명해줘야함.
그런데 그리드에 100명이 있다면 100명에게 각각 99명분의 데이터를 전송 해야함.
이 과정에서 상담원 말이 느려서 99명 분의 데이터를 1초만에 전송할수 없게 되거나,
공돌이들 책상에 자료가 쌓이면서 1초분량 데이터 계산하는데 1초가 넘게 걸린다면 타이다이가 걸리면서 그만큼 지연 시키는거임.
즉 실제 통신량은 지수비례라 서버 장비들간 모든 처리와 통신 속도는 100배가 늘어나야 함.
만약 일부 장비나 시스템이 속도를 못 따라간다면 병목 현상 때문에 서버 전체의 최대 처리 속도가 그것에 맞춰짐
이걸 어떻게든 분산해서 여러 장비에 나눠 분담한다 해도 결국 장비 클러스터가 많아지면 장비들간 통신에 또 자원을 써야 하고
분산 최적화 제대로 안해두면 또 제일 느린 장비 기준으로 속도가 맞춰져서 안하느니만 못한 최적화가 되어버림
이브 서버는 결코 나쁜편이 아닌데 현재 기술력으로 불가능에 가까운걸 어떻게든 해내려니까 문제가 있어 보이는거지
실제 지금 6천명이 한성계에 모인거만 봐도 말도 안되는 수준으로 최적화가 진행된거임.
동접자 1000명일때랑 비교했을때 단순 계산으로 36배 더 많은 트래픽이 필요한데 한마디로 지타성계 36개분 정보를 한 서버에서 어떻게든 처리해야 하는거임.
이 이상은 단순 최적화나 하드웨어 발달따위로는 더이상 불가능하지만, 어떻게든 해결해야한다면
클러스터를 분산시켜서 탄력적으로 운영하거나
(
즉, 상담원과 공돌이들이 묶인 자회사들을 잔뜩 만들어서 필요한만큼 하청을 주는것. 다만 상술했다시피 자회사들간에 의사소통이 잘 되지 않으면 클러스터간 통신이 더 큰 문제가 될수 있음. 예시로 여기에서 오류라도 생기면 템복사나 템삭제버그같은 큰 문제가 생길수도 있어서 개발자들도 쉽사리 손 댈수가 없는 주제이고 내부 통신으로 배보다 배꼽이 더 커질 수 있는 등 문제로 개발자들도 당장에 터치 불가능.
)
서버 자체를 그리드화시켜서 네트워크상에서 수많은 클라이언트와 서버들이 거미줄처럼 통신하는 방법정도를 제시할수 있겠음.
(
비유하자면 상담원-공돌이 커플이나 공돌이+상담원 둘다 하는 자영업자나 클라이언트들을 알바생으로 고용해서 서로간에 통신하는것임. 그런데 네트워크 자체가 매우 복잡하게 엉켜있다보니 변수도 워낙 많고 이것을 원하는대로 제어하는거 자체가 매우 난이도가 높음. 개선책으로는 블록체인 기술을 응용해서 중간에 빼돌리기 못하게 장부 작성하고, 각자 데이터 조금씩 나눠가지면서 부족한사람한테 복사해주는것이라 생각하면 됨. 이론상 메인 서버의 부담은 줄어들지만 클라이언트나 자영업자들이 죽어나갈수도 있고 중간에 사기쳐서 데이터가 바뀌거나, 그리드 전체를 완벽하게 통제하기는 어렵다는점 등이 문제임
)
요약하자면 기술적 스펙으로는 이제 한계에 다다랐고 전혀 다른 새로운 방식으로 최적화를 진행하거나,
게임 시스템 자체를 뜯어고쳐서 이 이상으로 인원이 몰리지 않도록 방법을 강구해야함.
클라우드기술 어케 못쓰려나
아무리 클라우드라 해도 개별 머신 스펙은 제한이 있을 수 밖에 없어서 부하가 일부 서버에 집중되면 서버 전체가 동기화 하느라 오히려 느려질 수도 있음. 동기화를 생략하면 없던 템이 생길 수도 있는거고 이미 수십년간 정식 서비스를 해오던 게임에 이런 문제가 생기면 대형사고 정도로는 끝나지 않을테니 모가지 내려놓을자신 있는 개발자 아니면 손도 못대겠지