| [ CnUnix ] in KIDS 글 쓴 이(By): akira (Park_S_J_) 날 짜 (Date): 2003년 2월 12일 수요일 오전 03시 44분 56초 제 목(Title): Re: 네트워크 프로그램 질문... connect하는 쪽이라면 SO_REUSEADDR하고는 상관 없습니다. TIMEWAIT 상태의 소켓수는 netstat -n|grep TIME_WAIT|wc -l 등으로 알 수 있습니다. 이 숫자가 1024 같이 fd max로 추정되는 특정 숫자 근처를 넘지 못하고 항상 숫자가 그 근처가 됐을 때 에러가 난다면 TIMEWAIT 소켓 문제일 확률이 높습니다. TIMEWAIT 문제가 확실하다면 passive close를 하거나(그러나 서버쪽에 쌓이므로 마찬가지) TIMEWAIT 시간을 조절하세요. fd max 갯수 조절하는 걸로는 각이 잘 안납니다. linux라면 dynamic tune은 안되는 것 같고 linux/include/net/tcp.h에서 #define TCP_TIMEWAIT_LEN (60*HZ) 부분을 줄인다음에 커널을 새로 컴파일 하셔야 할듯. 네트웍 상황이 좋다면 6초나 심지어 2~3초도 별 문제 없을 겁니다. |