IT_Programming/Network Programming

[펌] 멀티 프로세스 / 멀티 쓰레드 / 멀티 플렉싱 기법의 장점과 단점

JJun ™ 2009. 7. 2. 12:23

--------------------------------------------------------------------------------------------------

출처: http://www.gpgstudy.com/forum/viewtopic.php?t=21259 (myevan님 답변)

빗자루네 http://www.myevan.net >_<b

--------------------------------------------------------------------------------------------------


멀티 프로세스 방식의 장점안정성입니다.
메모리 침범에 의한 문제를 OS 차원에서 해결해주고
설령 문제가 생겨서 죽었다 해도 다시 실행하면 그만입니다.

단점은 유저당 1프로세스를 사용하는 CGI 방식을 채택하면 부담이 큽니다.
그래서 큰 역할 단위로 나누는 방법을 주로 채택합니다.
(존별로 나누든, 기능별로 나누든... )

무엇보다도 가장 큰 문제는 pipe 나 mmap 을 주로 사용해온 멀티 프로세스 프로그래밍 베테랑이 아니라면
적응하기가 좀 어렵다는 것입니다.

--------------------------------------------------------------------------------------------------


멀티 쓰레드 방식의 장점은 ... 부하를 나눌 수 있는 방법 중 그나마 제일 간단하다는 것이고,

단점은 수습하기 어렵다는 점입니다.

더구나 하나가 죽으면 전체에 영향을 주기 때문에 개인적인 견해로 대규모 인원이 플레이하는

게임 서비스에는 어울리는 방식은 아니라고 봅니다.
(웹 서버를 멀티쓰레드로 돌릴수 있는 이유는 스크립트라는 모래 상자가 있기 때문입니다. )

서버당 3000명이 접속해있는데, 서버에 에러가 발생하면 모든 사람이 게임을 못하기 때문이죠.
게임 오픈 초기에 문제가 자주 발생할 경우 망하기 딱 쉬운 케이스가 됩니다.

하지만 대규모 인원의 심리스 월드가 가능하고
왠지 멋져보인다라는 특성상 많은 프로그래머들이 선호하는 방식입니다.

--------------------------------------------------------------------------------------------------

멀티 플렉스 방식의 장점만들기도 이해하기도 수습하기도 비교적 쉽다는 것입니다.
단점은 요즘 대세라고 할 수 있는 멀티프로세서를 제대로 활용하기 어렵다는 것입니다.

하지만 서버 프로세스당 1000명 받는 일도 흔하지 않기 때문에, 실제 문제가 되는 경우는 거의 없고
10000명 접속의 경우 존단위로 500명, 700명, 300명 등등 받는 식으로 존단위로 분산시키는 방법을
많이 사용하곤 합니다.


--------------------------------------------------------------------------------------------------