| [ 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---------------------------- 잠못들때 파도소리가 귓속에서 울릴때 우리는 잃어버린 전설을 찾아 떠나야한다 |