리눅스에서 socket을 몇개까지 생성할수 있나요?
글쓴이: hana9423 / 작성시간: 수, 2003/03/12 - 6:38오후
지금 서버 프로그램을 만들고 있습니다.
근데 각각의 사용자마다 쓰레드를 하나씩 할당해 주고
포트가 다른 UDP Server Socket을 하나씩 할당해 주고 있습니다
그러니깐 사용자 하나당 Port가 다른 UDP socket 하나와 스레드
하나씩 배정되게 됩니다.
근데 해보니깐 339개의 스레드가 생성된후 생성이 안되더군요...
아무래도 스레드의 갯수 문제는 아니것 같은데..
UDP Server Socket의 갯수에서 걸리는것 같습니다..
소켓도 생성할수 있는 갯수가 있나요??
고수님의 답변 부탁 드립니다...
Forums:
소켓도 결국은 fd(file descripter) 를 사용하는데, 문제가
소켓도 결국은 fd(file descripter) 를 사용하는데, 문제가 되는것은 하나의 프로세스가 동시에 열 수 있는 fd의 개수입니다.
대부분 기본 설정으로는 1024인데요.
이 값은 ulimit 명령으로 알 수 있습니다.
설정은 /proc/sys/fs/file-max 파일을 편집함으로써 가능합니다.
# cat /proc/sys/fs/file-max
4096
# echo 8192 > /proc/sys/fs/file-max
# cat /proc/sys/fs/file-max
8192
제가 아는것은 여기까지인데.. 제가 직접 시스템을 변경시켜본 적이 없으므로 어떤 작업을 더 해야 하는지 확신할 수 없습니다.
어쨌든 현재의 문제는 '한 프로세스에서 동시에 열수있는 파일의 수'입니다.
339개의 thread 생성후 더이상 안된다면, 이 설정이 적은 값이거나 이미 open 한 파일의 수가 많다는 의미입니다.
우리 모두 리얼리스트가 되자. 그러나 가슴에 이룰 수 없는 꿈을 가지자
댓글 달기