http://kldp.org/node/60222
정말 평소엔 낭비라 생각했던 Windows의 이벤트방식과 쓰레드의 결합이란게 엄청난 효율을 발휘하는 것을 보고 놀랐습니다.
이렇듯 국내 대부분이 아니라 거의 모든 온라인 게임회사의 서버는 Windows NT 계열로 IOCP를 이용한 서버입니다.
이렇게 멀티소켓 컨넥션 쓰레드 처리라는 단 하나의 부분이 Linux나 오픈소스 OS가 Windows 에 뒤지는 퍼포먼스 벤치마크 분야라고 볼수 있는데요.
어떻게 대안이나 따라잡을 방법은 현재 없는것일까요?
kqueue나 epoll 등 현존 기술 모두 뒤져봐도 못따라잡는거로 검색결과 나타나던데, 다른 기술이라던가 아니면 앞으로 곧 나타날 신기술이 있는지 아니면 색다른 조합으로 가능한지?
답변中
IOCP 와 프로그래밍 방식이 비슷한 것으로 따지자면RTS (Real Time Signal) 정도가 될 것 같네요. 이 또한 이벤트방식입니다. 물론 RTS 가 구현하기 복잡하긴 합니다만.
제 생각엔 IOCP 나 RTS 나 어차피 I/O 이벤트가발생하면 시그널 보내주는 건데, 이 효율이 얼마나 차이날지모르겠네요.
물론 구현해 본 경험에 따르면, IOCP 가 효율적이면서도쉽기도 하고, 파일 입출력 등도 같이 처리할 수 있어서 같은 기능을더 나은 방식으로 지원한다는 것은 인정합니다.하지만, 리눅스로 못하는 건 아니에요...
답변中
펜티엄 4 2.8기가 메모리 2기가 linux rhel4 update2 현재 동접 10082 명
입니다.
게임써버는 아니고 이미지써버입니다.트래픽 280메가쯤 나옵니다.
서버구성 기술은 epoll 입니다.
게다가 요즘 N 모사 광고써버도 epoll 로 돕니다.
그놈도 동접 몇만되는걸로 압니다 -_-;
IIS 가 동접 만개에서도 잘도나요? ( 제가 윈도우는 잘 몰라서 그럽니다 )
답변中
IOCP나 epoll이나 kqueue나 하는 것들에 대해서는 제가 보기에는 논의 대상으로삼는것은 옳지 않다고 봅니다. 실재로 성능 차이가 별로 없을 뿐 아니라 어느것이성능이 좋네 하는 것도 플랫폼의 특성을 최대로 이끌어 내는 것이 더 중요하기때문이죠.
ms-윈도우즈를 서버로 선택했다면 어쩔 수 없는 선택으로 IOCP를 사용해야 하고, 리눅스(Linux)를 서버로 선택했다면 epoll을 신중히 검토해야 하며, BSD계열을 사용한다면 kqueue를선택하는게 좋겠죠.
그리고 이 녀석들의 성능이 이제는 전체 성능에 그다지 영향을 미치지 않습니다.시스템 성능과 운영체제의 튜닝이 그만큼 좋아졌기 때문입니다.
제가 온라인게임에서 동시 접속이 4000이상 나오는 서버들을 별로 본 적이 없습니다.
글타래
-
▼
2009
(71)
-
▼
6월
(44)
- 윤아아빠,전자담배 에바코 참고~
- usb 로 xp 설치
- ML115 서버 및 구닥다리 M925보드 업글용 백업메모
- g304와 g300p를 팔고 N5004를 질러...??
- 은행 인터넷뱅킹시 짜증나는 잡동사니 ActiveX 악성 보안툴들
- 전자담배 에바코 에바,연기적을때 응급조치요령
- 전자담배, 건강에 덜 해롭다? 안전성 검증 시급
- 진짜 같은 '전자담배'. 효과도 OK?
- 게임 개발자 중에서 서버개발이랑 클라이언트 개발 차이점은 뭔가요?
- 언제부턴가 인터넷 접속 모니터링 당하고 있다
- 아,고민되네 서버 프로그래밍 구성기술은 뭘로하지?...
- Win32 IOCP를 따라잡을 Unix, Linux, *BSD계열의 방법은?
- 프로그래머가 되는 방법
- 모던토킹 80년대 롤라장음악 '쉐리쉐리 레이디' 자작 공짜 벨소리 다운로드 해가삼!!
- MS-Windows 플랫폼의 Socket I/O Model 에는
- 솔직히 이 블로그스팟은,
- [강좌] MFC Ribbon Programming - MFC 리본 사용하기
- 블로그의 오른쪽 마우스 금지시킨거나 풀자!!
- 개떡같은 MS-VS++ 플랫폼 및 MFC DLL
- MS-Windows 에서도 Paint.Net 말고 더 좋은 김프를 쓰자! GTK와 GDK
- 무료소프트웨어
- 정적으로 MFC에 링크된 기본 DLL
- MFC 확장 DLL,정적 라이브러리로 링크는 안되는 것일까? -- 정답:안된다
- STATUS_DLL_NOT_FOUND with VS2008,VS200x
- 통합 메신저
- MFC정적으로 DLL 링크 + /MT 시 다음의 wincore.cpp 1475 line 에...
- MFC에 정적 또는 동적으로 링크하는 기본 DLL
- Download Visual Studio 2010(VS2010) Professional B...
- RedistributingVisualCppRunTimeLibrary
- 윈도 애플리케이션을 개발할 때 주로 쓰는 마이크로소프트(이하 MS)의 개발 도구들
- Microsoft Side-by-Side Horror Visual C++ 2008
- 파일만 잘 다뤄도 파워유저(?)
- Seoul City Hall and DeokSuGung
- 2008' 남해에 가려면 삼천포로 빠져야 한다!! 휴가지 남해일주,삼천포의 대교~여수
- URL Parse for SDK Function like AfxParseUrl
- 요즘세대도 이렇게 공부하려나? C언어 이야기
- 7zip plugin Api
- VC 2008 Feature Pack ::MFC 9.0 - 리본바 (Ribbonbar)
- WIN32 SDK FrameWork 라이브러리
- Visual Studio Technical Articles:: Boost for Visua...
- Visual C 에서 CRT와 MFC 라이브러리가 잘못된 순서로 링크되면 LNK2005
- 거꾸로 가는 MicroSoft™ 의 운영체제
- VC 에서 EXE크기 줄이면서 MFC90,MSVCRxx MSVCP DLL 포함 안하는 법
- My This blog moved from http://blog.hanafos.com/ye...
-
▼
6월
(44)
2009년 6월 18일 목요일
피드 구독하기:
댓글 (Atom)
그 쓰레드가 오래전꺼라 2009년 현재 기술과는 거리가 있는 내용이여서 전부 믿을건 못되고
답글삭제그동안 발전,LINUX계열에서도 요샌 다양한 방법이 있다!!
뭐 그냥 Epoll이면 될듯 - 거의 대등하다고 하니..
지양해야 될것은 1User 1Thread 방식도 고전방법이라는거.
그나저나 윈도그가 딴건 다 뒤쳐져도 서버업계에서 IOCP만은 그 성능을 인정받은듯..