C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[17813] 다시 질문:게임 서버
김상면 [windyboy] 3984 읽음    2010-02-24 13:15
니블님의 댓글에 최대 동시 접속자가 500명이라면......

만일 10억명의 동시 접속자를 한대의 서버(한개의 CPU)로 가능한 프로그램을 개발 했다면 엄청 돈이 되겠네요....
응답시간은 최장 1초로내로 모든 응답이 가능하다면요...

그럼


김상면 님이 쓰신 글 :
: 인터넷 게임이 요즘 많습니다.
: 수도 없이 많습니다.
: 그대 제가 궁금한것은....
:
: 요즘 게임 회사의 회원은 몇명인가?
: 회원 하나의 정보 저장을 위해 필용한 메모리 용량은 얼마인가?
: 최대 동시 접속자는 몇명인가입니다..
:
: 이유야 워 ... 부끄러워서 이야기도 못하겠고.....
: 그럼
Lyn [tohnokanna]   2010-02-24 13:27 X
서버 한대는 65535 명 이상의 접속을 받지 못합니다. =_=a

소켓 변수가 2byte 형이거든요
김호광 [testcode]   2010-02-24 14:40 X
500명은 어디서 나온 숫자인지 모르겠네요 -;; 근거가 -;;
대강 MMORPG를 인디로 만든다했을 때 2000 ~3000 정도면 최대 맥스입니다. IOCP는? 당연히 더 됩니다. 잘 짜면 IOCP라는 아가씨 때문에 교회가다가 절로 신앙활동 간 솔쩌들 많습니다. 리눅스가 퇴출된 이유가 다른 것이 아니라 IOCP ^^
Nibble [gameover]   2010-02-24 15:19 X
기획여하에 달린거겠죠. 서버가 한가한 게임이라면 소캣 쪼갤수 있는 만큼 쓸 수 있는거구요.
500명이란 기준은, MMORPG에 실시간 전투, 패킷 암호화, 유효성 검증 처리, 감시 프로세스들, 판정, 채팅, 그림대화, 개인정보 DB / 플레이어 정보 DB / 캐시정보 DB 인터페이스, 공지/사용자 외침과 같은 브로드캐스팅, 등등의 기획/마케팅쪽 요구에 의한 컨텐츠들을 담았을 때, 사용자들이 실시간 전투의 랙에 심각한 영향을 받지 않는 안전권의 기준입니다. CPU/Network 점유율을 평균 50% 정도로 제한했을 경우구요.
앞서 어떤분도 언급하셨지만, 서비스 퀄리티를 논할때, 시스템이 포용할 수 있는 한계를 서비스 한계로 잡는건 자살행위입니다.
Nibble [gameover]   2010-02-24 15:23 X
최장 1초라는건 좀 두리뭉술 한데요.
음성 채팅의 경우 상대방과 대화의 동기화가 어긋나지 않을 최대 허용 범위는 0.3초 입니다.
실시간 전투형태의 게임이면 더욱 타이트해지구요. 그런 동기화를 위해 타격이나 마법시전 모션등에 예비동작이 있는것입니다. 최적화는 필수지만, 많이 담는다고 단순히 좋은게 아닙니다. 새로운 컨텐츠가 투입될 수 있는 여유폭을 갖고 움직이는게 경제적이니까요.
Nibble [gameover]   2010-02-24 15:40 X
리눅스가 퇴출된 이유가 IOCP라는 이야기는 글쎄요. 개발자들의 선택이 아니었을까요?
인디를 쓰든 IOCP를 쓰든, fast socket을 쓰든, POSIX표준대로 poll을 쓰든, select나 pselect같은 과거의 방식을 쓰든
단순히 패킷을 주고 받고 트래픽을 관리하는 이슈는 서버에 주어지는 요구사항의 극히 일부일 뿐입니다.
Windows기반 서버가 기존의 Application 개발자들에게 많은 편의를 제공하는 부분이 더 큰 메릿이었을것 같구요.
FreeBSD의 폴러나 SolarisX86(역시 공짜)의 최신poll도 IOCP와 비교할 때 크게 성능차이가 나는 것은 아니거든요?
오래전에 IOCP가 붐이 일었던적은 있지만 구현시 구조가 지저분해지는 것은 감수해야 할 문제였고, 지금은 경쟁사들도 그만큼 만회해 나갔으니까요.
Nibble [gameover]   2010-02-24 15:45 X
많이 담아보겠다고 쪼개고 쪼갰다가, 플레이어 하나의 접속이 비정상적이라 프로세스가 행잉되었을때 모두 나가떨어지는 서버를 만든다면, 혹은 일주일에 한번 이상씩 수시간 점검하며 컴팩션해야 하는 시스템을 만들었다면, 사용자들은 자연히 빠져나감과 동시에 손배를 요구하게 됩니다. 기존엔 서비스사의 이용약관에서 한계를 우기면 되는식이었지만, 요즘은 소비자고발/보호시스템에 의해 그들의 요구를 많이 따라야 하구요.
Nibble [gameover]   2010-02-24 16:01 X
10년 전에 비해 하드웨어는 많은 발전이 있었죠. 하지만 그에 비해 사용자의 서비스 퀄리티에 대한 요구는 비약적으로 증가되었습니다. 개성있는 아바타. 좋죠. MMORPG라고 하면 레이드 관련 기획도 들어갈법한데, 수백명 정도의 유저가 거대 몹과 대결한다 치면 서버는? 레이드에 임한 모든이들에게 그들 눈에 보이는 모든이들의 외모정보를 송신하고, 매시간 움직임 정보를 보내야합니다. 기획이 빵빵하면 빵빵할수록 물리적인 단위 서버가 수용할 수 있는 capacity는 줄게 마련이죠. 그렇다면, 10년전 수준의 기획에서 현재의 고사양PC수준의 서버에 1000명 2000명 혹은 그 이상 돌린다고 팔리겠어요? (후진국 수출용은 가능할 수도 있다고 봅니다만) 현실성 있는 이야길 해야겠죠.
Nibble [gameover]   2010-02-24 16:11 X
게임 서비스에 있어서 캐쥬얼 게임이라면, 기존의 기획들에서, 동접 2000명이 손익분기점쯤 됩니다. MMORPG라면 3~4000은 되어야 될테구요 (투입자금이 많았다면 이 또한 유동적이죠). 물론 충성심높은 소수의 돈많은 플레이어를 확보하고 그들에게 수억씩 뜯어낼 수 있는 기획을 실현해 낸다면 이 또한 해당사항 없는 이야기겠죠. 위의 동접수를 다른 말로 해석하면, 500명 수용가능한 서버 12대만 가져도 어느정도 벌이는 할 수 있단 얘기구요. 이 이야긴 그냥 참고하시면 되겠습니다.
민성기.오랑캐꽃 [oranke]   2010-02-24 16:19 X
리눅스의 퇴출(?) 아니 윈도의 약진은 개발유지보수운영인력 확보 때문이죠.
당장 델파이 프로그래머도 구하기 힘든 세상인데... 하지만 윈도에서 VS 쓰는 사람은 참 많으니까요.

Nibble 님 말씀대로 전체 서버에서 소켓 핸들링의 비중은 10% 남짓밖에 안될껍니다.
중요한 건 결국 그 위에 얼마나 구조를 잘 쌓아올려 안정적으로 돌아가게 할 수 있느냐는 거죠.
셀렉트건 IOCP건 게임로직 처리가 받쳐주지 않으면 그 밥에 그 나물이더군요.

저희 경우 머신당 최대동접 "경험"은 4,500명이었습니다. 델파이+Win32+IOCP.
잘 넘기기는 했지만, 더미로 예측한 행동과 실제 유저는 참 많이 다르더군요.
올해 안에 갱신 한 번 해봐야할텐데요~~ ^^;;
지금은 월드 하나를 서버 두 대로 구성하고 한 대당 3천명 정도를 원할한 서비스의 한계로 잡습니다.

아무튼 다음 버전의 서버에서는 파이썬을 주언어로 쓰려고 합니다.
뭐 많이들 말리는 분위기지만... 델파이를 쓰는 것 보다 개발은 몰라도 유지보수운영은 낫겠죠 머~~~
Lyn [tohnokanna]   2010-02-24 16:21 X
민성기 // 음 파이썬 쓰래드처리 쥐약이라던데... 서버프로그래밍 언어로 쓸 만 한가요?
민성기.오랑캐꽃 [oranke]   2010-02-24 16:46 X
Lyn // 살펴보는 중입니다만, 뭐 제가 하는 것 보다 못하겠습니까~~ ^^; 그리고 어차피 소켓 핸들링은 모듈이 하면 되니까요. 무엇보다 libevent 가 파이썬 모듈로 제공되길래 "홍~~" 가 있는 상태입니다. ^^;;
Lyn [tohnokanna]   2010-02-24 16:55 X
Lyn // 아.. libevent 가 파이썬용으로도 있었군요.

전 루비로 해볼 생각은 함 했었는데... 패킷 다루기가 귀찮아서 두손들어버렷습니다. 포인터가 이렇게 고맙게 느껴질줄이야 =_=;
손희찬 [sorrymom]   2010-02-25 14:06 X
형님.. 뭐하러 하지도 않을 것을 그냥 툭 던져서 이렇게 불란을 일으키는지!!!!!!!!! 모임에나 열심히 좀 나오십시요!

+ -

관련 글 리스트
17812 게임 서버 김상면 3458 2010/02/24
17813     다시 질문:게임 서버 김상면 3984 2010/02/24
17819         게임서버 -;; 논쟁하는 건 그렇지만 Nibble께 김호광 4096 2010/02/24
17821             Re:게임서버 -;; 논쟁하는 건 그렇지만 Nibble께 Nibble 3580 2010/02/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.