CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): mimosa (mimosa)
날 짜 (Date): 2002년 7월  8일 월요일 오전 02시 21분 01초
제 목(Title): 동시접속 10만처리하기



Redhat 7.3에서 리눅스 디몬을 만들고 있습니다. 
현재 목표는 한대의 서버에서 동시접속자 10만명을 처리 
하는 것입니다. 
( connection을 유지토록 하는 간단한 일만 합니다 ) 

수많은 connection을 유지하기 위해 
prefork로 100개의 차일드 프로세스를 만든후에 
parent process에서 listen하고 있다가 
connection이 들어오면 file descriptor passing방법을 
사용해서 적당한 child에서 socket을 보내는 방법을 
사용하고 있습니다. 

하나의 child당 대략 1000개의 connection을 물고 있도록 
만들어 두었습니다 ( select function call사용 ) 
튜닝을 할만한 요소로 file-max값을 100000 이상으로 
만들어 두었습니다. 

아 서버사양은 듀얼 씨피유에 메모리는 2기가입니다. 

test를 해보면 동시사용자가 대략 6만 이상일때 
listen을 하고 있는 process가 죽어버리는데 
아무래도 65535란 수치와 관계가 있지 않을까 하는 
추측만 하고 있습니다. 

현재구조는 100개의 차일드가 저마다 각각 select펑션콜을 
사용하는 방식인데 커널단에서 최대 처리할 수 있는 
socket의 개수에 제한이 있는지 궁금합니다. 

긴 질문 읽어 주셔서 감사합니다. 

좋은 하루되세요

----------------------------ooO0o-- * . ^ --o0Ooo---------------------------- 
  
   잠못들때 파도소리가 귓속에서 울릴때 

                     우리는 잃어버린 전설을 찾아 떠나야한다
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.