디시인사이드 갤러리

마이너 갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

[일반] 엘온 운영비가 체급대비 비싼이유

ㅇㅇ(211.214) 2023.11.13 21:45:37
조회 1670 추천 20 댓글 11
														

전에 엘온 과금학개론 글 싼지가 이제 어엿 2년이 넘었네


https://gall.dcinside.com/m/eso/55358

 


거기 글에 "자세한 설명은 하지 않겠지만 한개 서버에 상주하는 유저들이 많고, 그 유저들의 인벤 크기가 클수록, 한번 유저가 인벤을 열때마다 서버에 오는 부하가 기하급수적으로 막심해진다는 정도만 알고 있으면 된다." 라는 말이 있었는데


그냥 심심해서 이걸 한번 풀어보려 함


(사실 컴공과, 코딩과면 대충은 알만한 내용임)


.


"인벤토리"란 무엇인가?


보통 사람들은 "서버 어딘가에 있는 데이터 쪼가리"라고 생각한다.


인벤토리는 대게 데이터베이스, 즉 DB상에 존재한다.


온라인 게임이던 싱글게임이던 보통 플레이어 인벤토리는 데이터 파일로 존재하고, 이 데이터 파일이라는건 보통 표로 존재한다. 쉽게말해 니들 인벤토리는 결국 엑셀파일이라는 소리다.


대신 엑셀은 쥔나 무겁다. 그리고 보통 DB에는 공식이나 스타일링은 필요없다. 그래서 딱 필요한 '아이템 ID', '값'(=니가 보유한 개수), 그리고 이걸 나눠주는 쉼표(,) 로만 구성해서 인코딩된 파일을 'CSV'(Comma-separated values, 쉽표로 나눠진 값들(의 모음))라고 부름. 이걸 자바스크립트 같은 스크립트 언어에 특화시킨게 JSON (이건 들어본놈 좀 있을거임).


보통 DB에 '어떤것이 몇개인가'를 표현할때, 일반적으로는 '어떤 것'을 하나의 열에 넣고, 그리고 각 아이템 별 보유 개수는 열에 맞춰 하나의 행에 기록된다. 이론적으로 니 인벤토리는 DB상에서 단 1줄로 찍힐수도 있다. 근데 엘온 같은 MMO는 아이템 종류와 장비 아이템 경우의 수가 너무나도 많기 때문에 이따구로 DB를 만들면 게임 서비스 못함.


그래서 보통 각 아이템 종류별로 고유 코드, 랜덤스탯이 있는 경우에는 아이템 유형값 + 랜덤생성기 시드값을 넣은 것을 '값'으로 잡고, 단 2열짜리 표에 니 인벤에 가지고 있는 아이템들을 그냥 병렬화 시켜서 때려박을...수는 있다. 하지만 엘온의 경우에는 아이템 등급 뿐만 아니라 장비템일 경우 해당템에 적용된 스타일과 제작템의 경우 제작한 캐릭터의 이름까지 기록해줘야 한다. 열이 두개를 넘을수밖에 없다는 뜻.


그리고 '각 케릭별로 인벤에 뭐가 뭐가 있어'라는 이 '표'들의 행의 숫자는 서버상에 존재하는 캐릭터 숫자만큼이다. (제작가방은 에소플 긁은적이 한번이라도 있는 계정 숫자만큼)


그리고 엘온에는 복병이 하나 더 있음. 리전도 플랫폼별로 두개밖에 없고, 한 계정이 팔 수 있는 캐릭터의 수도 최대 20개나 됨.


와! DB가 행이 도대체 몇게임? 얼마전에 엘온 계정 수 천만 찍었다고 했지? 북미섭에 계정 250만개라고 가정하고 계정 하나당 평균 캐릭터 수 3개라고만 계산해도 각 표 하나당 750만줄임. 엑셀이나 하물며 CSV도 한 1만행만 찍혀도 컴 버벅이고 지랄댄스 나는데 아무리 이딴거에 특화된 서버라고 버티겠음? 못버팀 ㅋㅋ


그래서 이런 초대형 DB를 운영할때는 크게 '트렁케이션'과 '색인'이라는 과정을 통해서 '최적화'를 해줌.


대충 설명해주자면 트렁케이션이란, 값을 지정해서 X개수만큼 잘라서 표를 따로따로 저장하는거고, '색인'은, DB에 모든 값에 대해서 1:1로 비교하지 않고, 특정 행들에 특정 값들에 대한 '목차'를 미리 뽑아놔서 이거만 대치해보고 값이 같으면 그안에서만 뽑으라고 미리 작업을 해놓는거임. 서버점검할때도 이런 작업도 보통 같이 해줌 ㅇㅇ.


하지만 그래도 결국 좆나게 큰 표들을 하나도 아니고 여러개씩에 대해 검색을 계속해서 실시간으로 수행한다는 사실 자체는 변하지 않음.


DB의 내용물을 보거나 바꿀때는 기본적으로 '쿼리'라는 작업을 수행하게 됨. 이 쿼리라는게 별거 아니고 일종의 집합 문제를 해결하고 그 값을 대령하라는 명령임. 니가 인벤을 열거나, 템을 먹거나, 버리거나, 아무튼 인벤과 관련된 뭔짓을 할때마다 클라이언트는 'ㅇㅇㅇ 표들에서 이 계정, 이 캐릭에 종속된 값들을 찾아내서 내놓으시오'(실제로는 더 복잡함)라는 명령을 서버에 날리고, 서버는 쿼리를 수행한 뒤 그 값을 다시 보내줘야 함. 인벤 한번 깔때마다 지구 반대편 서버에서 스프레드시트에다 대고 컨트롤+F를 여러번 쫘라락 수행하고 수십, 수백분의 1초 안에 결과를 대령한다는 뜻. 조회하는 DB 자체의 크기가 크면 클수록 아무리 최적화를 해줘도 CPU, 메모리와 저장장치가 해야 하는 일의 양 자체가 늘어나는건 물리법칙상 피할 수가 없음.


그리고 DB쿼리는 기본적으로 아무리 최적화를 쥐어짜봤자 결국 태생상 각 행/열을 쭈르륵 읽는 직렬연산임. (트렁케이션을 통해 어느정도의 병렬화는 이륙 가능하나 한계는 있음) 쉽게말해 게이머들 극혐하는 싱글쓰레드만 존나 갈구는 연산을 신나게 한다는거임. 에픽 CPU 두개박은 서버도 플레이어 좀 많이 붙으면 감당이 안됨.


보통 온라인 게임들이 서버 나누는 이유중 하나가 이 DB 관리 때문임. 보통 하나의 세션이나 인스턴스에 유저가 과다하게 많아서 랙 걸리는걸 먼저 연상하지만, 서버/채널로 나누는 한국식 MMO 방식이 제일 무식한 대처법이고 (대신 ㅇㅇ 서버, ㅇㅇ 채널, ㅇㅇ 맵 인스턴스에 입장하면 무조건 서로를 볼수 있다는 장점은 있음 ㅇㅇ) 대부분의 외산 현역 MMO들은 알아서 스마트하게 인스턴스를 나누기 때문에 이건 자원만 퍼부어주면 전~혀 문제가 안됨. 오히려 DB의 경우 규모가 어느정도 이상으로 커지면 실시간성이 생명인 게임 서비스에는 아무리 돈을 퍼부어도 문제가 해결이 안됨. 아까 누누이 말했듯이 태생이 직렬연산이여서 서버를 늘려도 한번에 받을 유저만 많아지지, 연산에 걸리는 시간을 단축시키는대에는 한계가 있거든. 엘온은 그럼 이짓을 어떻게 했냐고? 그건 진짜 개발진들밖에 모름. 감자서버라고 맨날 존나 욕하지만 사실 엘온 메가서버는 출범 당시 (소프트웨어) 기술적으로는 매우 굉장한 업적이였음. 저런 시도를 한적이 거의 없거든.


사실 하이아일때 서버 존나 터졌던것도 이거 도저히 감당 안되서 휴면계정들 백업시키고 실사용 계정 데이터는 고성능 스스디 기반 물리적 데이터베이스로 이주하는 작업이랑 겹쳐서 진단이 제대로 안됐던거임. (처음엔 서버 문제인줄 알았는데 알고보니 네트워크 문제였음)


그래서 나뿐만 아니라 컴붕이 엘붕이들은 오늘도 에소플만큼은 군말없이 긁는거임. 저짓을 무려 인하우스로 10년 가까이 운영을 하고 있거든. (요즘 AWS나 애져 클라우드 이관 안한 메이저 MMO는 엘온밖에 없는걸로 알고있음.)

추천 비추천

20

고정닉 1

21

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
2872 설문 연예인 안됐으면 어쩔 뻔, 누가 봐도 천상 연예인은? 운영자 24/06/17 - -
64073 공지 [TIP] 엘더스크롤 온라인 정보글 모음 [2] 전투력측정기갤로그로 이동합니다. 22.01.16 17783 16
68829 길드 엘온 중망호 길드 모집중 [635] 지나가던뉴비갤로그로 이동합니다. 23.01.25 14699 52
73094 한글패 한패 했는데 일부 애드온에서 글씨가 깨질땐 이걸 해봐 [17] 엘붕이(210.205) 04.26 508 10
73058 일반 TTC 에러 안나게 하는법 알려줌 [5] 엘붕이(211.187) 04.18 503 11
72975 일반 [120MB] 새로운 메커니즘: 스펠 크래프팅...WebP [7] 지나가던뉴비갤로그로 이동합니다. 04.08 532 13
72947 정보/ 장문주의) PVE 힐러 가이드 -1- 힐러 포지션 개요 [2] 김치찜갤로그로 이동합니다. 04.05 543 11
72807 정보/ 고장난 한글패치 고치는 방법.....gif (이제 안해도됨) [17] 지나가던뉴비갤로그로 이동합니다. 03.11 1417 27
72781 일반 그랜드 오버로드 땀 [11] 엘붕이(49.163) 03.06 600 11
일반 엘온 운영비가 체급대비 비싼이유 [11] ㅇㅇ(211.214) 23.11.13 1670 20
72058 한글패 DeepL 까지 적용된 마지막 한패입니다. [20] worldwideweirdo갤로그로 이동합니다. 23.11.10 1729 31
71985 정보/ Endless Archive 무한 던전에 대해 알아보자.araboza [17] ㅇㅇ(75.182) 23.11.01 946 19
71910 일반 저 자랑 하나만 해도 되겠습니까? [9] JTLee갤로그로 이동합니다. 23.10.28 1055 19
71874 일반 곧 다가오는 할로윈 축제 이벤트 요약 [5] 엘붕이(59.5) 23.10.24 745 8
71814 일반 점검기념 나도 올린다. 차차길드 유학갔다온 썰. [23] 엘붕이(1.239) 23.10.17 1408 25
71803 연재/ 엘더시리즈 덕후 늒네 ESO 14시간 플레이 후기 [6] 겜알못갤로그로 이동합니다. 23.10.16 1246 10
71714 일반 근데 왜 한패가 차차꺼라는거임? [6] 엘붕이(139.162) 23.10.10 1383 12
71706 일반 차차길드 가입부터 탈퇴까지 느낀점 [25] 발붕이(223.38) 23.10.09 1494 20
71491 일반 U40 업데이트 PTS 1호 [8] ㅇㅇ(174.203) 23.09.22 684 9
71066 일반 나블 그만 괴롭혀 [3] ㅇㅇ갤로그로 이동합니다. 23.08.20 756 10
71058 일반 던머와 브레튼과 카짓 만화 [3] 엘붕이(121.166) 23.08.19 741 17
71048 정보/ 짧팁) 말 탈 때 딜레이 없애는 법 [4] ㅇㅇ갤로그로 이동합니다. 23.08.18 963 12
71042 정보/ 엘붕실험실 (같은템을 입어도 CP차이로 발생하는 격차는?) [10] 엘붕이(125.176) 23.08.18 834 10
70955 일반 한글패치후 일부/전체 글씨 투명화되는사람 참고 [4] 엘붕이(121.138) 23.08.14 450 8
70950 일반 갤에 분탕 근첩새끼 한마리 상주하네 [7] ㅇㅇ(223.62) 23.08.14 719 20
70937 일반 이겜이 종특빨을 심하게 타는건 맞아 근데 [1] ㅇㅇ(124.197) 23.08.13 708 11
70933 정보/ 경비한테 걸려서 옷 다 벗겨지는 업적 [2] WG완비탄갤로그로 이동합니다. 23.08.13 1180 11
70925 정보/ 뉴비들한테 4키 5키 6키 이게 뭔지 설명해준다 [18] ㅇㅇ(124.197) 23.08.13 2385 24
70920 정보/ 퀘스트 스토리 순서대로 하고싶은 사람 보셈 [4] 엘붕이(121.133) 23.08.13 1691 23
70634 정보/ 엘온 탱커의 저항력 [13] ㅇㅇ(124.197) 23.08.03 1313 19
70633 한글패 한글패치 후 공란만 뜰 경우 필독 [4] ㅇㅇ(183.101) 23.08.03 678 11
70441 일반 뉴비가 뉴비에게 공략 최신버전 [17] 프킁프킁프갤로그로 이동합니다. 23.07.28 4368 14
70419 일반 [리쉐이더] 리쉐이더와 함께하는 그래픽 응급처치 [4] ㅇㅇ갤로그로 이동합니다. 23.07.28 680 15
70310 연재/ 보스머 얘네 왜이럼? [9] ㅇㅇ(220.118) 23.07.23 338 9
70293 연재/ [엘더목장] 던머와 벌레들 [4] ㅇㅇ갤로그로 이동합니다. 23.07.23 596 15
70261 일반 정보) 질문은 갤이 아니라 인게임에서 하는게 나음 [2] ㅇㅇ(75.182) 23.07.22 485 9
70222 정보/ 시작 전 많이 하는 질문 [1] ㅇㅇ갤로그로 이동합니다. 23.07.22 1805 16
70178 일반 (수정) 한패 설치 과정 스샷으로 설명 [8] ㅇㅇ(183.101) 23.07.21 725 8
70102 일반 딸깍 [2] ㅇㅇ(125.176) 23.07.17 711 12
70099 일반 PVE 솔플, 역할, 클래스별 난이도 초간단 정리 [14] ㅇㅇ(112.161) 23.07.17 3374 34
70054 일반 요번에 적용되고 있는 엘온 한패 번역사이트 변경점 [8] ㅇㅇ(183.101) 23.07.12 762 10
69931 일반 하이브리드 패치 아무리 봐도 실패했음 [8] ㅇㅇ(223.62) 23.06.25 809 9
69907 일반 한패 번역 관심 있는 사람들에게 소소한 팁 [6] ㅇㅇ(183.101) 23.06.22 627 10
69899 일반 적극적인 의견 개진도 좋지만 [4] 전투력측정기갤로그로 이동합니다. 23.06.21 554 11
69713 일반 진짜 게임 재밌네 [20] ㅇㅇ(121.131) 23.06.04 1502 24
69505 일반 제일 힘든건 70k 못 찍는애도 아니고 같이 간 애들도 아니고 [10] ㅇㅇ갤로그로 이동합니다. 23.05.05 1007 12
69438 일반 엘온 딜러(dps) 세트아이템 구해가는 순서 [13] ㅇㅇ(125.176) 23.04.27 2840 12
69276 정보/ [80MB] 2023 쥬블리 이벤트..........WebP [3] 지나가던뉴비갤로그로 이동합니다. 23.04.08 504 9
69212 정보/ [60MB] 제스터 페스티벌 이벤트...............WebP [2] 지나가던뉴비갤로그로 이동합니다. 23.03.30 458 14
69183 일반 "하아...또 망겜이 된거야...? 질리지도 않나?♡" [9] ㅇㅇ(194.124) 23.03.27 1810 27
68892 일반 이새끼들 게임은 한글화 안해주면서 [5] ㅇㅇ(221.140) 23.01.30 1679 18
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2