yuchi's Development Home


사내 스트레스 테스트

조회 수 3510 추천 수 61 2009.04.12 05:32:29




4월 10일 사내에서 175명의 직원들을 상대로 개발중인 게임을 공개했다.

동영상이나 pt자료는 공개한 적이 있었지만, 플레이 가능한 바이너리를 공개하긴 처음이었다.

여지껏 MMORPG에서 TPS(혹은 FPS)스타일의 전투를 도입한 사례는 없었다.

주변의 우려와 스스로의 불안감에도 불구하고 TPS전투 MMORPG를 표방하며 2007년 8월에 프로젝트를 시작했다.

사실 지금껏 한 순간도 우려하지 않았던 적은 없었다. 계산상으로는 가능해보였다. 허나 돌려보기 전에는 모르는 일.

이번 테스트는 그 돌려보기 전에는 모르는 일의 첫 관문이다.

다수의 인원이 접속했을때 TPS스타일의 전투가 가능할지를 검증해보는 테스트였다.

이 프로젝트를 시작하면서 가장 우려했던 기술적 리스크는 다음과 같다.

1.서버에서의 3D 충돌체크, 기준 시간(대략 10ms) 안에 서버가 1000명도분의 충돌처리를 할 수 있을것인가?

2.마우스를 흔들고 키보드를 마구 눌러대는 입력을 모두 처리해주면서 패킷량을 일정 수준 이하로 유지할 수 있을 것인가?


실제 이 게임을 플레이할 사람들, 지금 당장은 사내 테스트에 함여해줄 같은 회사 직원들의 반응이 전혀 궁금하지 않았던 것은 아니다. 그래픽이나 재미요소에 대한 반응도 약간은 궁금했다.

그렇지만 정말정말 가장 우려했고 스트레스를 받았던 건은 위의 기술적 이슈였다.

이 프로젝트를 시작하고 몇 개월이 지난 시점, 대략 지금으로부터 1년쯤부터 매주 목요일에 주간 빌드를 만들어내고 팀 내 테스트를 실시했다.

1년간 두어번이나 빠졌을까. 5명 정도의 팀일때부터 지금의 12명 팀이 될때까지 정말 안빠지고 테스트는 꼬박꼬박 했다.

덕택에 현재까지 만들어진 기능에 대해서는 버그가 많지 않았고, CPU자원의 활용, 메모리 소모량에 대해서도 어느 정도 만족할만큼의 결과를 얻어냈다.

그럼에도 불구하고 미쳐 감지하지 못한 문제가 있었으니 네트웍 부하였다.

그 전까진 내부망에 서버와 클라이언트를 모두 물려놓고 테스트했으므로 패킷량이 많긴 해도 직접 문제가 되는걸 느끼지는 못했다.

사내 테스트를 일주일 앞둔 시점에 서버와 클라이언트를 각각 다른 회선으로 분리했을때, 패킷량이 감당이 안됨을 깨달았다.

사실 패킷하나 하나의 크기가 큰건 아니었다. 너무 자주 전송을 시도하는 탓에 tcp헤더가 덕지덕지 붙는게 문제였다.

nagle알고리즘만 켜도 간단히 양을 줄일 수 있었지만, 게임 특성상 200ms나 딜레이가 생기면 도저히 플레이 할 수 없었다.

밤잠을 설치며 고민한 끝에 체감하지 못할 정도의 딜레이를 허용하면서도 최대한 패킷을 모아보내는 코드를 집어넣었다.

화요일에 클라이언트에 적용하고 12명이 접속한 상태로 테스트용 오토프로그램을 돌렸다.

전날 테스트에 비해 패킷량이 1/8 정도로 줄어들었다.

당일 밤까지 미친듯이 코드를 짜고 테스트 해서 서버에도 모두 적용시켰다.

수,목요일 양일 동안 패킷량을 점검하면서 종일 테스트를 했다.

내부 테스트 결과나 계산 예측치로는 문제가 없어보였다.

내가 할 수 있는건 다 했다. 나머지는 신의 뜻이다...

금요일 아침에 출근하자마자 퍼포먼스 로그를 남기는 코드를 활성화시키고 IDC에 세팅한 게임 서버 어플리케이션을 실행시켰다.

클라이언트 프로그램을 usb메모리에 넣어서 5개 건물에 분산되어있는 이야인터랙티브 전 팀들을 다 순회했다.

팀 홈페이지에 클라이언트를 올려놓고 다운로드시켜도 되지만, 아무래도 얼굴을 직접 보고 테스트를 부탁하는게 참여율을 높일 수 있을것 같았다.

서버 오픈 시간은 오후1시고, 공식 테스트 시간은 2시였지만,  클라이언트를 배포한 후 조금씩 접속자가 생겨났다.

오후 3시쯤 최대 동접 94명을 기록했다.

175명중에 연차다 뭐다 해서 빠진 사람 제외하면 160명 정도가 접속 가능했을테니 동접 120명 정도는 나와주지 않을까 기대했었다.

아쉽게도 최대 동접 94명을 기점으로 동접이 조금씩 줄어들었다.

94명의 동접을 기록하고 있는 상태에서 cpu점유율과 네트웍 사용량을 보니 최초의 테스트때의 예상치보다 많이 낮은 수치였다.

최근 몇 일간 뜯어고친 코드가 크게 효과가 있었다.

오후 4시 감사의 말과 함께 테스트 종료를 공지했다.

4시 5분 서버 프로그램을 종료했다.

서버 프로그램의 콘솔에서 esc버튼을 누르자 마지막 남은 30여명의 접속자가 깔끔하게 disconnect되고 1바이트의 리소스 누수도 없이 서버는 깔끔하게 종료했다.

대략 6시간 동안 테스트 중에 서버는 한번도 크래시 하지 않았다.

최대동접은 94명, 개별 접속자 수는 142명이었다. 클라이언트는 몇번인가 크래시해서 덤프가 서버로 날라오긴 했지만, 클라이언트를 실행한 142명 모두 게임에 접속 성공한 것으로 확인됐다.

큰 문제 없이 게임은 돌아갔다.

팀원들에게 사내 테스트 종료를 알렸다.

살짝 눈물이 날뻔했다.

내가 만든 엔진과 네트웍 솔루션으로 게임이 출시된 적은 여러번 있었지만, 직접 프로젝트 팀을 끌고 100명 정도의 사람들이 접속하는 테스트까지 와보기는 처음이었다.

사운드 라이브러리 하나 빼고 몽땅 우리 자체 기술이었다.

4명 팀으로 시작해서 1년 반동안 12명의 팀으로 늘려왔지만 여전히 작은 팀이다.

최근 많이 힘들었지만 약간의 자신감을 회복했다.

팀원들의 사기도 올라간것 같다.

이제 첫 관문을 통과했다. 아직 갈 길이 멀지만...

꾸준히 움직이다보면 목적지에 도착할 수 있겠지.


댓글 '16'

kjmgo

2009.04.12 11:32:48
*.186.138.144

수고하셨습니다. :) 전날 부터 해보았지만 저희 팀은 정말 재밌게 했습니다.
특히 PvP는 생각했던 것보다 훨씬 자연스러웠고, 판정도 좋아서 막판에 서버 종료 될때까지는 PvP만 했지 말입니다. ㅎㅎ

여치

2009.04.12 11:34:25
*.176.255.2

kjmgo/정만님 팀 분들이 렙이 제일 높더군요. 열심히 테스트 해주셔서 무지 감사하게 생각하고 있습니다.

ASTERiS

2009.04.12 12:42:18
*.54.147.12

오홀 이거 축하합니다. ㅇㅂㅇ)

여치

2009.04.13 01:04:09
*.176.255.2

ASTERiS/ 감사합니다.

cagetu

2009.04.13 10:29:22
*.55.24.200

반갑습니다. ^^
꼭, 대박 나시길... ㅎㅎ 축하드려횹... ㅎㅎ

jufoot

2009.04.13 11:35:49
*.92.66.171

실력과 열정이 존경스럽습니다! 캐릭터가 더 이뻐진 것 같네요 ^^

상돈

2009.04.13 12:00:24
*.241.147.33

축하한다~ 대박기원!

여치

2009.04.13 15:55:14
*.199.248.185

cagetu/ 이제 시작인데 대박까지야..감사합니다.

여치

2009.04.13 16:01:41
*.199.248.185

jufoot/ 실력도 없고 열정도 없지만 악으로 버티고 있습니다. 게임 출시하고 산으로 들어갈 날을 위해~ 감사합니다.

여치

2009.04.13 16:01:59
*.199.248.185

상돈 / 대박까진 안바라고 꼭 출시됐으면 좋겠다. 고맙다.

서재형

2009.04.13 21:09:20
*.126.29.2

축하드리고요. 모쪼록 좋은 결실 이루시길... 어찌보면 이제 시작인셈이네요. ^^
화이팅!

여치

2009.04.14 11:03:42
*.199.248.185

서재형 / 엄청 간만이네요. 잘 지내시죠? 감사합니다. 이제 시작인데 왜 이리 빡신지...

베지타

2009.04.15 09:44:14
*.95.252.149

클베도 아닌데...
이정도 규모에 사내테스트를 하면서 크래쉬적고 리소스 관리가 완벽한 경우는
본적이 없는데 말이죠..
오 읽고 있는데 살짝 감동이지 말입니다..ㅋㅋㅋ
대박났으면 좋겠네요...

여치

2009.04.15 11:24:26
*.199.248.185

베지타 / 예나 지금이나 '과연 제대로 돌아갈 것인가' 가 최대의 관심사고 걱정거리라서 말이죠. 할 수 있는거라곤 테스트를 빡시게 하고 기록을 잘 남겨두는 것 밖에 없으니까요. 감사합니다. 대박나세요~

레옹2

2009.04.18 01:20:49
*.14.63.252

영천아 대박나라 ㅠ.ㅠ

여치

2009.04.18 03:21:52
*.176.255.2

레옹2 / 아직 서비스 가려면 멀었지만... 감사감사~
파일 첨부

여기에 파일을 끌어 놓거나 파일 첨부 버튼을 클릭하세요.

파일 크기 제한 : 0MB (허용 확장자 : *.*)

0개 첨부 됨 ( / )
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
161 유져모드 메모리 페이징 구현 여치 2007-09-23 3410
160 nVidia Visual Profiler 4.1로 돌린 결과 file 여치 2012-02-21 3479
159 엔진 64비트 포팅 프로젝트 진척상황 여치 2007-05-01 3480
158 간단한 눈 처리 file [4] 여치 2010-02-21 3494
» 사내 스트레스 테스트 file [16] 여치 2009-04-12 3510
156 6core Xeon*2 + GTS250 CDUA 라이트맵 렌더링 file 여치 2010-06-15 3511
155 TFS Backup Plan 삭제 방법 여치 2011-11-07 3520
154 새로 만든 서버용 네트웍 컴포넌트 I4DyuchiNET2.0 file [2] 여치 2007-04-01 3537
153 64비트 릴리즈 모드 테스트 여치 2007-07-19 3537
152 3D엔진 및 네트웍 솔루션 x64 포팅 프로젝트 대충 완료 file [4] 여치 2007-05-05 3560
151 64비트로 gogo file 여치 2007-03-27 3570
150 계속 개선중인 라이트맵 file 여치 2007-07-24 3578
149 Depth of Field 구현중 file 여치 2010-11-24 3582
148 라이트맵 엣지 블랜딩 관련 file 여치 2011-11-28 3588
147 요새 관심사는... [2] 여치 2006-01-10 3617
146 CUDA로 구현한 충돌처리 [5] 여치 2012-01-16 3631
145 Windows Store App에서 D3DCompile계열함수 사용 여치 2012-12-23 3635
144 CUDA 충돌처리 현재까지 진행상황 file 여치 2012-02-04 3641
143 주말동안 작업내용 [1] 여치 2008-01-28 3657
142 dx11 라이트맵 처리 file 여치 2011-01-28 3687
天安門大屠殺 六四天安門事件 反右派鬥爭 大躍進政策 文化大革命 六四天安門事件 The Tiananmen Square protests of 1989 天安門大屠殺 The Tiananmen Square Massacre 反右派鬥爭 The Anti-Rightist Struggle 大躍進政策 The Great Leap Forward 文化大革命 The Great Proletarian Cultural Revolution 人權 Human Rights 民運 Democratization 自由 Freedom 獨立 Independence 多黨制 Multi-party system 民主 言論 思想 反共 反革命 抗議 運動 騷亂 暴亂 騷擾 擾亂 抗暴 平反 維權 示威游行 法輪功 Falun Dafa 李洪志 法輪大法 大法弟子 強制斷種 強制堕胎 民族淨化 人體實驗 胡耀邦 趙紫陽 魏京生 王丹 還政於民 和平演變 激流中國 北京之春 大紀元時報 九評論共産黨 獨裁 專制 壓制 統一 監視 鎮壓 迫害 侵略 掠奪 破壞 拷問 屠殺 肅清 活摘器官 障テ社會 誘拐 買賣人口 遊進 走私 毒品 賣淫 春畫 賭博 六合彩 台灣 臺灣 Taiwan Formosa 中華民國 Republic of China 西藏 土伯特 唐古特 Tibet 達償ワ喇嘛 Dalai Lama 新疆維吾爾自治區 The Xinjiang Uyghur Autonomous Region free tibet



XE Login

天安門大屠殺 六四天安門事件 反右派鬥爭 大躍進政策 文化大革命 六四天安門事件 The Tiananmen Square protests of 1989 天安門大屠殺 The Tiananmen Square Massacre 反右派鬥爭 The Anti-Rightist Struggle 大躍進政策 The Great Leap Forward 文化大革命 The Great Proletarian Cultural Revolution 人權 Human Rights 民運 Democratization 自由 Freedom 獨立 Independence 多黨制 Multi-party system 民主 言論 思想 反共 反革命 抗議 運動 騷亂 暴亂 騷擾 擾亂 抗暴 平反 維權 示威游行 法輪功 Falun Dafa 李洪志 法輪大法 大法弟子 強制斷種 強制堕胎 民族淨化 人體實驗 胡耀邦 趙紫陽 魏京生 王丹 還政於民 和平演變 激流中國 北京之春 大紀元時報 九評論共産黨 獨裁 專制 壓制 統一 監視 鎮壓 迫害 侵略 掠奪 破壞 拷問 屠殺 肅清 活摘器官 障テ社會 誘拐 買賣人口 遊進 走私 毒品 賣淫 春畫 賭博 六合彩 台灣 臺灣 Taiwan Formosa 中華民國 Republic of China 西藏 土伯特 唐古特 Tibet 達償ワ喇嘛 Dalai Lama 新疆維吾爾自治區 The Xinjiang Uyghur Autonomous Region free tibet